use light_compressed_account::Pubkey;
use light_token_interface::{
error::TokenError,
state::{Token, TokenConfig, BASE_TOKEN_ACCOUNT_SIZE},
};
use light_zero_copy::ZeroCopyNew;
fn default_config() -> TokenConfig {
TokenConfig {
mint: Pubkey::default(),
owner: Pubkey::default(),
state: 1,
extensions: None,
}
}
#[test]
fn test_compressed_token_new_zero_copy_buffer_too_small() {
let config = default_config();
let mut buffer = vec![0u8; 100]; let result = Token::new_zero_copy(&mut buffer, config);
assert!(result.is_err());
}
#[test]
fn test_zero_copy_at_checked_uninitialized_account() {
let buffer = vec![0u8; BASE_TOKEN_ACCOUNT_SIZE as usize];
let result = Token::zero_copy_at_checked(&buffer);
assert!(matches!(result, Err(TokenError::InvalidAccountState)));
}
#[test]
fn test_zero_copy_at_mut_checked_uninitialized_account() {
let mut buffer = vec![0u8; BASE_TOKEN_ACCOUNT_SIZE as usize];
let result = Token::zero_copy_at_mut_checked(&mut buffer);
assert!(matches!(result, Err(TokenError::InvalidAccountState)));
}
#[test]
fn test_zero_copy_at_checked_buffer_too_small() {
let buffer = vec![0u8; 100];
let result = Token::zero_copy_at_checked(&buffer);
assert!(matches!(result, Err(TokenError::ZeroCopyError(_))));
}
#[test]
fn test_zero_copy_at_mut_checked_buffer_too_small() {
let mut buffer = vec![0u8; 100];
let result = Token::zero_copy_at_mut_checked(&mut buffer);
assert!(matches!(result, Err(TokenError::ZeroCopyError(_))));
}