Adding upstream version 0.0.22.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
2f814b513a
commit
b06d3acde8
190 changed files with 61565 additions and 0 deletions
214
icann-rdap-cli/tests/integration/rdap_cmd/queries.rs
Normal file
214
icann-rdap-cli/tests/integration/rdap_cmd/queries.rs
Normal file
|
@ -0,0 +1,214 @@
|
|||
#![allow(non_snake_case)]
|
||||
|
||||
use {
|
||||
icann_rdap_common::response::{Autnum, Domain, Entity, Nameserver, Network},
|
||||
icann_rdap_srv::storage::StoreOps,
|
||||
rstest::rstest,
|
||||
};
|
||||
|
||||
use crate::test_jig::TestJig;
|
||||
|
||||
#[rstest]
|
||||
#[case("foo.example", "foo.example")]
|
||||
#[case("foo.example", "foo.example.")]
|
||||
#[case("foo.example", "FOO.EXAMPLE")]
|
||||
#[case("foó.example", "foó.example")] // unicode
|
||||
#[tokio::test(flavor = "multi_thread")]
|
||||
async fn GIVEN_domain_WHEN_query_THEN_success(#[case] db_domain: &str, #[case] q_domain: &str) {
|
||||
// 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(db_domain).build())
|
||||
.await
|
||||
.expect("add domain in tx");
|
||||
tx.commit().await.expect("tx commit");
|
||||
|
||||
// WHEN
|
||||
test_jig.cmd.arg(q_domain);
|
||||
|
||||
// THEN
|
||||
let assert = test_jig.cmd.assert();
|
||||
assert.success();
|
||||
}
|
||||
|
||||
#[tokio::test(flavor = "multi_thread")]
|
||||
async fn GIVEN_tld_WHEN_query_THEN_success() {
|
||||
// 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("example").build())
|
||||
.await
|
||||
.expect("add domain in tx");
|
||||
tx.commit().await.expect("tx commit");
|
||||
|
||||
// WHEN
|
||||
// without "--tld-lookup=none" then this attempts to query IANA instead of the test server
|
||||
test_jig.cmd.arg("--tld-lookup=none").arg(".example");
|
||||
|
||||
// THEN
|
||||
let assert = test_jig.cmd.assert();
|
||||
assert.success();
|
||||
}
|
||||
|
||||
#[tokio::test(flavor = "multi_thread")]
|
||||
async fn GIVEN_entity_WHEN_query_THEN_success() {
|
||||
// GIVEN
|
||||
let mut test_jig = TestJig::new_rdap().await;
|
||||
let mut tx = test_jig.mem.new_tx().await.expect("new transaction");
|
||||
tx.add_entity(&Entity::builder().handle("foo").build())
|
||||
.await
|
||||
.expect("add entity in tx");
|
||||
tx.commit().await.expect("tx commit");
|
||||
|
||||
// WHEN
|
||||
test_jig.cmd.arg("foo");
|
||||
|
||||
// THEN
|
||||
let assert = test_jig.cmd.assert();
|
||||
assert.success();
|
||||
}
|
||||
|
||||
#[tokio::test(flavor = "multi_thread")]
|
||||
async fn GIVEN_nameserver_WHEN_query_THEN_success() {
|
||||
// GIVEN
|
||||
let mut test_jig = TestJig::new_rdap().await;
|
||||
let mut tx = test_jig.mem.new_tx().await.expect("new transaction");
|
||||
tx.add_nameserver(
|
||||
&Nameserver::builder()
|
||||
.ldh_name("ns.foo.example")
|
||||
.build()
|
||||
.unwrap(),
|
||||
)
|
||||
.await
|
||||
.expect("add nameserver in tx");
|
||||
tx.commit().await.expect("tx commit");
|
||||
|
||||
// WHEN
|
||||
test_jig.cmd.arg("ns.foo.example");
|
||||
|
||||
// THEN
|
||||
let assert = test_jig.cmd.assert();
|
||||
assert.success();
|
||||
}
|
||||
|
||||
#[tokio::test(flavor = "multi_thread")]
|
||||
async fn GIVEN_autnum_WHEN_query_THEN_success() {
|
||||
// GIVEN
|
||||
let mut test_jig = TestJig::new_rdap().await;
|
||||
let mut tx = test_jig.mem.new_tx().await.expect("new transaction");
|
||||
tx.add_autnum(&Autnum::builder().autnum_range(700..710).build())
|
||||
.await
|
||||
.expect("add autnum in tx");
|
||||
tx.commit().await.expect("tx commit");
|
||||
|
||||
// WHEN
|
||||
test_jig.cmd.arg("700");
|
||||
|
||||
// THEN
|
||||
let assert = test_jig.cmd.assert();
|
||||
assert.success();
|
||||
}
|
||||
|
||||
#[tokio::test(flavor = "multi_thread")]
|
||||
async fn GIVEN_network_ip_WHEN_query_THEN_success() {
|
||||
// GIVEN
|
||||
let mut test_jig = TestJig::new_rdap().await;
|
||||
let mut tx = test_jig.mem.new_tx().await.expect("new transaction");
|
||||
tx.add_network(
|
||||
&Network::builder()
|
||||
.cidr("10.0.0.0/24")
|
||||
.build()
|
||||
.expect("cidr parsing"),
|
||||
)
|
||||
.await
|
||||
.expect("add network in tx");
|
||||
tx.commit().await.expect("tx commit");
|
||||
|
||||
// WHEN
|
||||
test_jig.cmd.arg("10.0.0.1");
|
||||
|
||||
// THEN
|
||||
let assert = test_jig.cmd.assert();
|
||||
assert.success();
|
||||
}
|
||||
|
||||
#[rstest]
|
||||
#[case("10.0.0.0/24", "10.0.0.0/24")]
|
||||
#[case("10.0.0.0/24", "10.0.0/24")]
|
||||
#[tokio::test(flavor = "multi_thread")]
|
||||
async fn GIVEN_network_cidr_WHEN_query_THEN_success(#[case] db_cidr: &str, #[case] q_cidr: &str) {
|
||||
// GIVEN
|
||||
let mut test_jig = TestJig::new_rdap().await;
|
||||
let mut tx = test_jig.mem.new_tx().await.expect("new transaction");
|
||||
tx.add_network(
|
||||
&Network::builder()
|
||||
.cidr(db_cidr)
|
||||
.build()
|
||||
.expect("cidr parsing"),
|
||||
)
|
||||
.await
|
||||
.expect("add network in tx");
|
||||
tx.commit().await.expect("tx commit");
|
||||
|
||||
// WHEN
|
||||
test_jig.cmd.arg(q_cidr);
|
||||
|
||||
// THEN
|
||||
let assert = test_jig.cmd.assert();
|
||||
assert.success();
|
||||
}
|
||||
|
||||
#[tokio::test(flavor = "multi_thread")]
|
||||
async fn GIVEN_url_WHEN_query_THEN_success() {
|
||||
// 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").build())
|
||||
.await
|
||||
.expect("add domain in tx");
|
||||
tx.commit().await.expect("tx commit");
|
||||
|
||||
// WHEN
|
||||
let url = format!("{}/domain/foo.example", test_jig.rdap_base);
|
||||
test_jig.cmd.arg(url);
|
||||
|
||||
// THEN
|
||||
let assert = test_jig.cmd.assert();
|
||||
assert.success();
|
||||
}
|
||||
|
||||
#[tokio::test(flavor = "multi_thread")]
|
||||
async fn GIVEN_idn_WHEN_query_a_label_THEN_success() {
|
||||
// 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("xn--caf-dma.example").build())
|
||||
.await
|
||||
.expect("add domain in tx");
|
||||
tx.commit().await.expect("tx commit");
|
||||
|
||||
// WHEN
|
||||
test_jig.cmd.arg("-t").arg("a-label").arg("café.example");
|
||||
|
||||
// THEN
|
||||
let assert = test_jig.cmd.assert();
|
||||
assert.success();
|
||||
}
|
||||
|
||||
#[tokio::test(flavor = "multi_thread")]
|
||||
async fn GIVEN_domain_WHEN_search_domain_names_THEN_success() {
|
||||
// GIVEN
|
||||
let mut test_jig = TestJig::new_rdap_with_dn_search().await;
|
||||
let mut tx = test_jig.mem.new_tx().await.expect("new transaction");
|
||||
tx.add_domain(&Domain::builder().ldh_name("foo.example").build())
|
||||
.await
|
||||
.expect("add domain in tx");
|
||||
tx.commit().await.expect("tx commit");
|
||||
|
||||
// WHEN
|
||||
test_jig.cmd.arg("-t").arg("domain-name").arg("foo.*");
|
||||
|
||||
// THEN
|
||||
let assert = test_jig.cmd.assert();
|
||||
assert.success();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue