Add more tests

This commit is contained in:
Greg Fitzgerald 2018-02-27 11:28:10 -07:00
parent 34b77efc87
commit fa4d9e8bcb
1 changed files with 67 additions and 2 deletions

View File

@ -105,14 +105,13 @@ mod tests {
#[test]
fn test_accountant() {
let zero = Sha256Hash::default();
let mut acc = Accountant::new(&zero, Some(2));
let alice_keypair = generate_keypair();
let bob_keypair = generate_keypair();
acc.deposit(10_000, &alice_keypair).unwrap();
acc.deposit(1_000, &bob_keypair).unwrap();
sleep(Duration::from_millis(30));
let bob_pubkey = GenericArray::clone_from_slice(bob_keypair.public_key_bytes());
acc.transfer(500, &alice_keypair, bob_pubkey).unwrap();
@ -125,4 +124,70 @@ mod tests {
ExitReason::RecvDisconnected
);
}
#[test]
fn test_invalid_transfer() {
let zero = Sha256Hash::default();
let mut acc = Accountant::new(&zero, Some(2));
let alice_keypair = generate_keypair();
let bob_keypair = generate_keypair();
acc.deposit(10_000, &alice_keypair).unwrap();
acc.deposit(1_000, &bob_keypair).unwrap();
sleep(Duration::from_millis(30));
let bob_pubkey = GenericArray::clone_from_slice(bob_keypair.public_key_bytes());
acc.transfer(10_001, &alice_keypair, bob_pubkey).unwrap();
sleep(Duration::from_millis(30));
let alice_pubkey = GenericArray::clone_from_slice(alice_keypair.public_key_bytes());
assert_eq!(acc.get_balance(&alice_pubkey).unwrap(), 10_000);
assert_eq!(acc.get_balance(&bob_pubkey).unwrap(), 1_000);
drop(acc.historian.sender);
assert_eq!(
acc.historian.thread_hdl.join().unwrap().1,
ExitReason::RecvDisconnected
);
}
#[test]
fn test_mulitple_claims() {
let zero = Sha256Hash::default();
let mut acc = Accountant::new(&zero, Some(2));
let keypair = generate_keypair();
acc.deposit(1, &keypair).unwrap();
acc.deposit(2, &keypair).unwrap();
let pubkey = GenericArray::clone_from_slice(keypair.public_key_bytes());
sleep(Duration::from_millis(30));
assert_eq!(acc.get_balance(&pubkey).unwrap(), 3);
drop(acc.historian.sender);
assert_eq!(
acc.historian.thread_hdl.join().unwrap().1,
ExitReason::RecvDisconnected
);
}
#[test]
fn test_transfer_to_newb() {
let zero = Sha256Hash::default();
let mut acc = Accountant::new(&zero, Some(2));
let alice_keypair = generate_keypair();
let bob_keypair = generate_keypair();
acc.deposit(10_000, &alice_keypair).unwrap();
sleep(Duration::from_millis(30));
let bob_pubkey = GenericArray::clone_from_slice(bob_keypair.public_key_bytes());
acc.transfer(500, &alice_keypair, bob_pubkey).unwrap();
sleep(Duration::from_millis(30));
assert_eq!(acc.get_balance(&bob_pubkey).unwrap(), 500);
drop(acc.historian.sender);
assert_eq!(
acc.historian.thread_hdl.join().unwrap().1,
ExitReason::RecvDisconnected
);
}
}