31 lines
1.2 KiB
Rust
31 lines
1.2 KiB
Rust
// file: ks-lib/tests/external_solana_program_metadata_model_api.rs
|
|
// version: 2
|
|
|
|
//! Downstream-style compilation contract for Solana Program Metadata models.
|
|
|
|
#[test]
|
|
fn external_consumers_use_only_crate_root_model_exports() {
|
|
let seed_result = ks_lib::DcMetadataSpmSeed::from_utf8("idl");
|
|
assert!(seed_result.is_ok());
|
|
let seed;
|
|
if let std::result::Result::Ok(value) = seed_result {
|
|
seed = value;
|
|
} else {
|
|
return;
|
|
}
|
|
assert_eq!(seed.trimmed_utf8(), std::result::Result::Ok("idl"));
|
|
assert_eq!(seed.as_bytes().len(), ks_lib::DC_METADATA_SPM_SEED_BYTES);
|
|
let external = ks_lib::DcMetadataSpmExternalData::from_zeroable_length(
|
|
solana_pubkey::Pubkey::new_from_array([9_u8; 32]),
|
|
4,
|
|
8,
|
|
);
|
|
let data = ks_lib::DcMetadataSpmData::External(external);
|
|
assert_eq!(data.source(), ks_lib::DcMetadataSpmDataSource::External);
|
|
assert_eq!(data.wire_length_u32(), std::result::Result::Ok(40),);
|
|
assert_eq!(ks_lib::DcMetadataSpmProgramError::InvalidDataLength.code(), 4);
|
|
assert_eq!(ks_lib::DC_METADATA_SPM_BUFFER_HEADER_BYTES, 96);
|
|
assert_eq!(ks_lib::DC_METADATA_SPM_METADATA_HEADER_BYTES, 96);
|
|
assert_eq!(ks_lib::DC_METADATA_SPM_EXTERNAL_DATA_BYTES, 40);
|
|
}
|