1
0
Fork 0
icann-rdap/icann-rdap-cli/tests/integration/rdap_cmd/cache.rs
Daniel Baumann b06d3acde8
Adding upstream version 0.0.22.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-05-08 18:41:54 +02:00

50 lines
1.7 KiB
Rust

#![allow(non_snake_case)]
use {
icann_rdap_client::rdap::RequestResponseOwned,
icann_rdap_common::response::{Domain, Entity, RdapResponse},
icann_rdap_srv::storage::StoreOps,
};
use crate::test_jig::TestJig;
#[tokio::test(flavor = "multi_thread")]
async fn GIVEN_domain_with_entity_WHEN_retreived_from_cache_THEN_is_domain() {
// GIVEN
let mut test_jig = TestJig::new_rdap().await;
let mut tx = test_jig.mem.new_tx().await.expect("new transaction");
tx.add_domain(
&Domain::builder()
.ldh_name("foo.example")
.entity(Entity::builder().handle("bob").build())
.build(),
)
.await
.expect("add domain in tx");
tx.commit().await.expect("tx commit");
test_jig.cmd.arg("foo.example");
let output = test_jig.cmd.output().expect("executing domain query");
let responses: Vec<RequestResponseOwned> =
serde_json::from_slice(&output.stdout).expect("parsing stdout");
let rdap = &responses.first().expect("response is empty").res_data.rdap;
println!("response type is {rdap}");
// WHEN
let mut test_jig = test_jig.new_cmd();
test_jig.cmd.arg("foo.example");
// THEN
let output = test_jig.cmd.output().expect("executing domain query");
let responses: Vec<RequestResponseOwned> =
serde_json::from_slice(&output.stdout).expect("parsing stdout");
let rdap = &responses.first().expect("response is empty").res_data.rdap;
println!("response type is {rdap}");
assert!(matches!(rdap, RdapResponse::Domain(_)));
let rdap_type = &responses
.first()
.expect("response is empty")
.res_data
.rdap_type;
assert_eq!(rdap_type, "Domain");
}