85 lines
2.5 KiB
Rust
85 lines
2.5 KiB
Rust
use rpki::data_model::aspa::{AspaEContent, AspaValidateError, EeAspaResources};
|
|
|
|
fn test_aspa() -> AspaEContent {
|
|
AspaEContent {
|
|
version: 1,
|
|
customer_as_id: 64496,
|
|
provider_as_ids: vec![64497],
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn validate_accepts_when_customer_matches_ee_asid() {
|
|
let aspa = test_aspa();
|
|
let ee = EeAspaResources {
|
|
as_id: Some(64496),
|
|
as_resources_inherit: false,
|
|
as_resources_range_present: false,
|
|
ip_resources_present: false,
|
|
};
|
|
aspa.validate_against_ee_resources(&ee)
|
|
.expect("customer must match");
|
|
}
|
|
|
|
#[test]
|
|
fn validate_rejects_missing_as_resources() {
|
|
let aspa = test_aspa();
|
|
let ee = EeAspaResources {
|
|
as_id: None,
|
|
as_resources_inherit: false,
|
|
as_resources_range_present: false,
|
|
ip_resources_present: false,
|
|
};
|
|
let err = aspa.validate_against_ee_resources(&ee).unwrap_err();
|
|
assert!(matches!(err, AspaValidateError::EeAsResourcesMissing));
|
|
}
|
|
|
|
#[test]
|
|
fn validate_rejects_as_resources_inherit_or_ranges() {
|
|
let aspa = test_aspa();
|
|
let ee = EeAspaResources {
|
|
as_id: Some(64496),
|
|
as_resources_inherit: true,
|
|
as_resources_range_present: false,
|
|
ip_resources_present: false,
|
|
};
|
|
let err = aspa.validate_against_ee_resources(&ee).unwrap_err();
|
|
assert!(matches!(err, AspaValidateError::EeAsResourcesInherit));
|
|
|
|
let ee = EeAspaResources {
|
|
as_id: Some(64496),
|
|
as_resources_inherit: false,
|
|
as_resources_range_present: true,
|
|
ip_resources_present: false,
|
|
};
|
|
let err = aspa.validate_against_ee_resources(&ee).unwrap_err();
|
|
assert!(matches!(err, AspaValidateError::EeAsResourcesRangePresent));
|
|
}
|
|
|
|
#[test]
|
|
fn validate_rejects_customer_mismatch() {
|
|
let aspa = test_aspa();
|
|
let ee = EeAspaResources {
|
|
as_id: Some(64511),
|
|
as_resources_inherit: false,
|
|
as_resources_range_present: false,
|
|
ip_resources_present: false,
|
|
};
|
|
let err = aspa.validate_against_ee_resources(&ee).unwrap_err();
|
|
assert!(matches!(err, AspaValidateError::CustomerAsIdMismatch { .. }));
|
|
}
|
|
|
|
#[test]
|
|
fn validate_rejects_ip_resources_present() {
|
|
let aspa = test_aspa();
|
|
let ee = EeAspaResources {
|
|
as_id: Some(64496),
|
|
as_resources_inherit: false,
|
|
as_resources_range_present: false,
|
|
ip_resources_present: true,
|
|
};
|
|
let err = aspa.validate_against_ee_resources(&ee).unwrap_err();
|
|
assert!(matches!(err, AspaValidateError::EeIpResourcesPresent));
|
|
}
|
|
|