v0.4.8-pre.003
This commit is contained in:
30
kb-lib/tests/external_solana_program_metadata_model_api.rs
Normal file
30
kb-lib/tests/external_solana_program_metadata_model_api.rs
Normal file
@@ -0,0 +1,30 @@
|
||||
// file: kb-lib/tests/external_solana_program_metadata_model_api.rs
|
||||
// version: 1
|
||||
|
||||
//! Downstream-style compilation contract for Solana Program Metadata models.
|
||||
|
||||
#[test]
|
||||
fn external_consumers_use_only_crate_root_model_exports() {
|
||||
let seed_result = kb_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(), kb_lib::DC_METADATA_SPM_SEED_BYTES);
|
||||
let external = kb_lib::DcMetadataSpmExternalData::from_zeroable_length(
|
||||
solana_pubkey::Pubkey::new_from_array([9_u8; 32]),
|
||||
4,
|
||||
8,
|
||||
);
|
||||
let data = kb_lib::DcMetadataSpmData::External(external);
|
||||
assert_eq!(data.source(), kb_lib::DcMetadataSpmDataSource::External);
|
||||
assert_eq!(data.wire_length_u32(), std::result::Result::Ok(40),);
|
||||
assert_eq!(kb_lib::DcMetadataSpmProgramError::InvalidDataLength.code(), 4);
|
||||
assert_eq!(kb_lib::DC_METADATA_SPM_BUFFER_HEADER_BYTES, 96);
|
||||
assert_eq!(kb_lib::DC_METADATA_SPM_METADATA_HEADER_BYTES, 96);
|
||||
assert_eq!(kb_lib::DC_METADATA_SPM_EXTERNAL_DATA_BYTES, 40);
|
||||
}
|
||||
Reference in New Issue
Block a user