44 lines
2.1 KiB
Rust
44 lines
2.1 KiB
Rust
// file: crates/ksp-app-raw-transaction-ingest-desk/unit_tests/route_monitoring.rs
|
|
// version: 1
|
|
|
|
#[test]
|
|
fn pre_010_source_gap_and_repair_codes_are_exact_and_source_neutral() {
|
|
assert_eq!(super::source_state_code(ksp_worker_raw_transaction_ingest_lib::RawTransactionIngestSourceState::Active), "active");
|
|
assert_eq!(super::source_state_code(ksp_worker_raw_transaction_ingest_lib::RawTransactionIngestSourceState::Reconnecting), "reconnecting");
|
|
assert_eq!(super::gap_state_code(ksp_worker_raw_transaction_ingest_lib::RawTransactionIngestGapState::Repairing), "repairing");
|
|
assert_eq!(super::gap_reason_code(ksp_worker_raw_transaction_ingest_lib::RawTransactionIngestGapReason::SourceFailure), "source_failure");
|
|
assert_eq!(
|
|
super::repair_method_code(ksp_worker_raw_transaction_ingest_lib::RawTransactionIngestRepairMethod::TransactionHydration),
|
|
"transaction_hydration"
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn pre_010_slot_projection_uses_decimal_text_for_javascript_safe_exactness() {
|
|
assert_eq!(super::slot_text(std::option::Option::Some(u64::MAX)), std::option::Option::Some(u64::MAX.to_string()));
|
|
assert_eq!(super::slot_text(std::option::Option::None), std::option::Option::None);
|
|
}
|
|
|
|
#[test]
|
|
fn pre_010_bounded_cardinality_projection_rejects_only_unrepresentable_values() {
|
|
let zero = super::usize_to_u32(0, "zero");
|
|
assert!(matches!(zero, std::result::Result::Ok(0)));
|
|
let maximum = usize::try_from(u32::MAX);
|
|
assert!(maximum.is_ok());
|
|
if let std::result::Result::Ok(maximum) = maximum {
|
|
let converted = super::usize_to_u32(maximum, "maximum");
|
|
assert!(matches!(converted, std::result::Result::Ok(u32::MAX)));
|
|
}
|
|
if usize::BITS > u32::BITS {
|
|
let overflow_value = usize::try_from(u64::from(u32::MAX) + 1);
|
|
assert!(overflow_value.is_ok());
|
|
if let std::result::Result::Ok(overflow_value) = overflow_value {
|
|
let overflow = super::usize_to_u32(overflow_value, "overflow");
|
|
assert!(overflow.is_err());
|
|
if let std::result::Result::Err(error) = overflow {
|
|
assert_eq!(error.code(), crate::ERROR_CODE_APP_STATE_INVALID);
|
|
}
|
|
}
|
|
}
|
|
}
|