shank_parse::shank_parse!("../idl/close_account.json");
#[cfg(test)]
mod tests {
use super::close_account::accounts::*;
use super::close_account::instructions::*;
use super::close_account::ID;
use shank_parse::__private::Pubkey;
#[test]
fn test_program_id() {
assert_eq!(ID.to_string(), "2HXWQuEjgRDbNcMx3X32C1aw4fftVMHyUf9KXYyTiPiD");
}
#[test]
fn test_meme_from_account_data() {
let address = [42u8; 32];
let mut data = Vec::new();
data.extend_from_slice(&address);
data.push(254u8);
let meme = Meme::from_account_data(&data).unwrap();
assert_eq!(meme.address, address);
assert_eq!(meme.bump, 254);
}
#[test]
fn test_meme_from_account_data_insufficient() {
let data = vec![0u8; 10];
assert!(Meme::from_account_data(&data).is_err());
}
#[test]
fn test_create_meme_instruction() {
let program_id = Pubkey::new_from_array([1u8; 32]);
let accounts = CreateMemeAccounts {
payer: Pubkey::new_from_array([2u8; 32]),
meme: Pubkey::new_from_array([3u8; 32]),
system_program: Pubkey::new_from_array([4u8; 32]),
};
let ix = create_meme(&program_id, &accounts);
assert_eq!(ix.program_id, program_id);
assert_eq!(ix.accounts.len(), 3);
assert_eq!(ix.data, vec![0u8]); assert!(ix.accounts[0].is_signer); assert!(ix.accounts[1].is_writable); }
#[test]
fn test_close_meme_instruction() {
let program_id = Pubkey::new_from_array([1u8; 32]);
let accounts = CloseMemeAccounts {
payer: Pubkey::new_from_array([2u8; 32]),
meme: Pubkey::new_from_array([3u8; 32]),
system_program: Pubkey::new_from_array([4u8; 32]),
};
let ix = close_meme(&program_id, &accounts);
assert_eq!(ix.data, vec![1u8]); assert_eq!(ix.accounts.len(), 3);
}
}