34 lines
1.0 KiB
Rust
34 lines
1.0 KiB
Rust
use rpki::data_model::roa::{RoaDecodeError, RoaObject};
|
|
|
|
#[test]
|
|
fn decode_roa_fixture_smoke() {
|
|
let der = std::fs::read(
|
|
"tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS4538.roa",
|
|
)
|
|
.expect("read ROA fixture");
|
|
let roa = RoaObject::decode_der(&der).expect("decode roa");
|
|
assert_eq!(
|
|
roa.econtent_type,
|
|
rpki::data_model::oid::OID_CT_ROUTE_ORIGIN_AUTHZ
|
|
);
|
|
assert_eq!(roa.roa.version, 0);
|
|
assert_eq!(roa.roa.as_id, 4538);
|
|
assert!(!roa.roa.ip_addr_blocks.is_empty());
|
|
assert!(roa
|
|
.roa
|
|
.ip_addr_blocks
|
|
.iter()
|
|
.all(|f| !f.addresses.is_empty()));
|
|
println!("{roa:#?}");
|
|
}
|
|
|
|
#[test]
|
|
fn decode_rejects_non_roa_econtent_type() {
|
|
let der = std::fs::read(
|
|
"tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/05FC9C5B88506F7C0D3F862C8895BED67E9F8EBA.mft",
|
|
)
|
|
.expect("read MFT fixture");
|
|
let err = RoaObject::decode_der(&der).unwrap_err();
|
|
assert!(matches!(err, RoaDecodeError::InvalidEContentType(_)));
|
|
}
|