Simplify voting helpers
This commit is contained in:
parent
7a6d730db3
commit
6058bfb687
|
@ -91,19 +91,28 @@ mod tests {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn register_and_deserialize(
|
fn register_and_deserialize(
|
||||||
keyed_accounts: &mut [KeyedAccount],
|
voter_id: &Pubkey,
|
||||||
|
voter_account: &mut Account,
|
||||||
|
vote_state_id: &Pubkey,
|
||||||
|
vote_state_account: &mut Account,
|
||||||
) -> Result<VoteProgram, ProgramError> {
|
) -> Result<VoteProgram, ProgramError> {
|
||||||
register(keyed_accounts)?;
|
let mut keyed_accounts = [
|
||||||
let vote_state = VoteProgram::deserialize(&keyed_accounts[1].account.userdata).unwrap();
|
KeyedAccount::new(voter_id, true, voter_account),
|
||||||
|
KeyedAccount::new(vote_state_id, false, vote_state_account),
|
||||||
|
];
|
||||||
|
register(&mut keyed_accounts)?;
|
||||||
|
let vote_state = VoteProgram::deserialize(&vote_state_account.userdata).unwrap();
|
||||||
Ok(vote_state)
|
Ok(vote_state)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn vote_and_deserialize(
|
fn vote_and_deserialize(
|
||||||
keyed_accounts: &mut [KeyedAccount],
|
vote_state_id: &Pubkey,
|
||||||
|
vote_state_account: &mut Account,
|
||||||
vote: Vote,
|
vote: Vote,
|
||||||
) -> Result<VoteProgram, ProgramError> {
|
) -> Result<VoteProgram, ProgramError> {
|
||||||
process_vote(keyed_accounts, vote)?;
|
let mut keyed_accounts = [KeyedAccount::new(vote_state_id, true, vote_state_account)];
|
||||||
let vote_state = VoteProgram::deserialize(&keyed_accounts[0].account.userdata).unwrap();
|
process_vote(&mut keyed_accounts, vote)?;
|
||||||
|
let vote_state = VoteProgram::deserialize(&vote_state_account.userdata).unwrap();
|
||||||
Ok(vote_state)
|
Ok(vote_state)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,12 +124,13 @@ mod tests {
|
||||||
let vote_state_id = Keypair::new().pubkey();
|
let vote_state_id = Keypair::new().pubkey();
|
||||||
let mut vote_state_account = create_vote_program(100);
|
let mut vote_state_account = create_vote_program(100);
|
||||||
|
|
||||||
let mut keyed_accounts = [
|
let vote_state = register_and_deserialize(
|
||||||
KeyedAccount::new(&voter_id, true, &mut voter_account),
|
&voter_id,
|
||||||
KeyedAccount::new(&vote_state_id, false, &mut vote_state_account),
|
&mut voter_account,
|
||||||
];
|
&vote_state_id,
|
||||||
|
&mut vote_state_account,
|
||||||
let vote_state = register_and_deserialize(&mut keyed_accounts).unwrap();
|
)
|
||||||
|
.unwrap();
|
||||||
assert_eq!(vote_state.node_id, voter_id);
|
assert_eq!(vote_state.node_id, voter_id);
|
||||||
assert!(vote_state.votes.is_empty());
|
assert!(vote_state.votes.is_empty());
|
||||||
}
|
}
|
||||||
|
@ -139,13 +149,9 @@ mod tests {
|
||||||
];
|
];
|
||||||
register(&mut keyed_accounts).unwrap();
|
register(&mut keyed_accounts).unwrap();
|
||||||
|
|
||||||
let mut keyed_accounts = [KeyedAccount::new(
|
|
||||||
&vote_state_id,
|
|
||||||
true,
|
|
||||||
&mut vote_state_account,
|
|
||||||
)];
|
|
||||||
let vote = Vote::new(1);
|
let vote = Vote::new(1);
|
||||||
let vote_state = vote_and_deserialize(&mut keyed_accounts, vote.clone()).unwrap();
|
let vote_state =
|
||||||
|
vote_and_deserialize(&vote_state_id, &mut vote_state_account, vote.clone()).unwrap();
|
||||||
assert_eq!(vote_state.votes, vec![vote]);
|
assert_eq!(vote_state.votes, vec![vote]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,13 +161,9 @@ mod tests {
|
||||||
let vote_state_id = Keypair::new().pubkey();
|
let vote_state_id = Keypair::new().pubkey();
|
||||||
let mut vote_state_account = create_vote_program(100);
|
let mut vote_state_account = create_vote_program(100);
|
||||||
|
|
||||||
let mut keyed_accounts = [KeyedAccount::new(
|
|
||||||
&vote_state_id,
|
|
||||||
true,
|
|
||||||
&mut vote_state_account,
|
|
||||||
)];
|
|
||||||
let vote = Vote::new(1);
|
let vote = Vote::new(1);
|
||||||
let vote_state = vote_and_deserialize(&mut keyed_accounts, vote.clone()).unwrap();
|
let vote_state =
|
||||||
|
vote_and_deserialize(&vote_state_id, &mut vote_state_account, vote.clone()).unwrap();
|
||||||
assert_eq!(vote_state.votes, vec![vote]);
|
assert_eq!(vote_state.votes, vec![vote]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue