token tests p1 (#2700)

* token tests p1

* token tests - address review comments

* fix cs
This commit is contained in:
Michał Piotrowski 2022-01-05 23:11:31 +01:00 committed by GitHub
parent eedcbd8602
commit fe7b848024
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 75 additions and 0 deletions

View File

@ -286,3 +286,78 @@ fn unpack_coption_u64(src: &[u8; 12]) -> Result<COption<u64>, ProgramError> {
_ => Err(ProgramError::InvalidAccountData),
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_mint_unpack_from_slice() {
let src: [u8; 82] = [0; 82];
let mint = Mint::unpack_from_slice(&src).unwrap();
assert!(!mint.is_initialized);
let mut src: [u8; 82] = [0; 82];
src[45] = 2;
let mint = Mint::unpack_from_slice(&src).unwrap_err();
assert_eq!(mint, ProgramError::InvalidAccountData);
}
#[test]
fn test_account_state() {
let account_state = AccountState::default();
assert_eq!(account_state, AccountState::Uninitialized);
}
#[test]
fn test_multisig_unpack_from_slice() {
let src: [u8; 355] = [0; 355];
let multisig = Multisig::unpack_from_slice(&src).unwrap();
assert_eq!(multisig.m, 0);
assert_eq!(multisig.n, 0);
assert!(!multisig.is_initialized);
let mut src: [u8; 355] = [0; 355];
src[0] = 1;
src[1] = 1;
src[2] = 1;
let multisig = Multisig::unpack_from_slice(&src).unwrap();
assert_eq!(multisig.m, 1);
assert_eq!(multisig.n, 1);
assert!(multisig.is_initialized);
let mut src: [u8; 355] = [0; 355];
src[2] = 2;
let multisig = Multisig::unpack_from_slice(&src).unwrap_err();
assert_eq!(multisig, ProgramError::InvalidAccountData);
}
#[test]
fn test_unpack_coption_key() {
let src: [u8; 36] = [0; 36];
let result = unpack_coption_key(&src).unwrap();
assert_eq!(result, COption::None);
let mut src: [u8; 36] = [0; 36];
src[1] = 1;
let result = unpack_coption_key(&src).unwrap_err();
assert_eq!(result, ProgramError::InvalidAccountData);
}
#[test]
fn test_unpack_coption_u64() {
let src: [u8; 12] = [0; 12];
let result = unpack_coption_u64(&src).unwrap();
assert_eq!(result, COption::None);
let mut src: [u8; 12] = [0; 12];
src[0] = 1;
let result = unpack_coption_u64(&src).unwrap();
assert_eq!(result, COption::Some(0));
let mut src: [u8; 12] = [0; 12];
src[1] = 1;
let result = unpack_coption_u64(&src).unwrap_err();
assert_eq!(result, ProgramError::InvalidAccountData);
}
}