v0.3.10-pre.002
This commit is contained in:
73
crates/ksp-raw-transaction-lib/unit_tests/acquisition.rs
Normal file
73
crates/ksp-raw-transaction-lib/unit_tests/acquisition.rs
Normal file
@@ -0,0 +1,73 @@
|
||||
// file: crates/ksp-raw-transaction-lib/unit_tests/acquisition.rs
|
||||
// version: 1
|
||||
|
||||
fn canonical_transaction() -> std::option::Option<ksp_store_api::RawTransaction> {
|
||||
let network = match ksp_store_api::RawNetworkId::new("devnet") {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(_) => return std::option::Option::None,
|
||||
};
|
||||
let signature = match crate::parse_raw_transaction_signature("1".repeat(64).as_str()) {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(_) => return std::option::Option::None,
|
||||
};
|
||||
let material = crate::RawTransactionMaterial::binary_base64(
|
||||
network,
|
||||
signature,
|
||||
42,
|
||||
std::option::Option::None,
|
||||
"AQID",
|
||||
crate::RawTransactionWireField::Omitted,
|
||||
crate::RawTransactionWireField::Omitted,
|
||||
crate::RawTransactionWireField::Omitted,
|
||||
);
|
||||
return match crate::canonicalize_raw_transaction(material) {
|
||||
std::result::Result::Ok(value) => std::option::Option::Some(value),
|
||||
std::result::Result::Err(_) => std::option::Option::None,
|
||||
};
|
||||
}
|
||||
|
||||
fn provenance() -> std::option::Option<ksp_store_api::RawAcquisitionProvenance> {
|
||||
let provider = match ksp_store_api::RawProvenanceCode::new("fixture") {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(_) => return std::option::Option::None,
|
||||
};
|
||||
let protocol = match ksp_store_api::RawProvenanceCode::new("fixture.protocol") {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(_) => return std::option::Option::None,
|
||||
};
|
||||
let method = match ksp_store_api::RawProvenanceCode::new("fixture.method") {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(_) => return std::option::Option::None,
|
||||
};
|
||||
let received_at = match ksp_store_api::RawTimestamp::from_unix_millis(1_700_000_000_000) {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(_) => return std::option::Option::None,
|
||||
};
|
||||
return std::option::Option::Some(ksp_store_api::RawAcquisitionProvenance::new(
|
||||
provider,
|
||||
protocol,
|
||||
method,
|
||||
ksp_store_api::RawAcquisitionOrigin::Import,
|
||||
received_at,
|
||||
));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pre_002_acquisition_preserves_producer_key_and_exact_transaction_reference() {
|
||||
let transaction = match canonical_transaction() {
|
||||
std::option::Option::Some(value) => value,
|
||||
std::option::Option::None => return,
|
||||
};
|
||||
let provenance = match provenance() {
|
||||
std::option::Option::Some(value) => value,
|
||||
std::option::Option::None => return,
|
||||
};
|
||||
let key = ksp_store_api::RawObservationKey::new([7_u8; 32]);
|
||||
let acquisition = crate::assemble_raw_transaction_acquisition(transaction, key, provenance);
|
||||
assert_eq!(acquisition.observation().observation_key(), key);
|
||||
assert_eq!(acquisition.observation().transaction(), acquisition.transaction().reference());
|
||||
assert_eq!(std::format!("{acquisition:?}"), "RawTransactionAcquisition(..)");
|
||||
let (transaction, observation) = acquisition.into_parts();
|
||||
assert_eq!(observation.transaction(), transaction.reference());
|
||||
return;
|
||||
}
|
||||
Reference in New Issue
Block a user