Skip to content

Commit dd4c117

Browse files
committed
add ns query integration tests
1 parent c34a30a commit dd4c117

File tree

1 file changed

+30
-3
lines changed

1 file changed

+30
-3
lines changed

tests/integration_test.rs

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::{net::IpAddr, str::FromStr};
22

3-
use dns_rust::{async_resolver::{config::ResolverConfig, AsyncResolver, resolver_error::ResolverError}, message::{resource_record::ResourceRecord, rdata::Rdata}};
3+
use dns_rust::{async_resolver::{config::ResolverConfig, AsyncResolver, resolver_error::ResolverError}, message::{resource_record::ResourceRecord, rdata::Rdata}, domain_name::DomainName};
44

55

66

@@ -30,7 +30,7 @@ async fn query_a_type() {
3030
if let Rdata::A(ip) = rdata {
3131
assert_eq!(ip.get_address(), IpAddr::from_str("93.184.216.34").unwrap());
3232
} else {
33-
panic!("Error parsing response");
33+
panic!("No ip address");
3434
}
3535
} else {
3636
panic!("No response")
@@ -42,15 +42,42 @@ async fn query_a_type() {
4242
async fn query_all_type() {
4343
let response = query_response("example.com", "ANY").await;
4444
if let Ok(rrs) = response {
45-
assert_eq!(rrs.iter().count(), 2);
45+
assert_eq!(rrs.len(), 2);
4646
} else {
4747
panic!("No response")
4848
}
4949
}
5050

5151
// TODO: 6.2.3 Query normal Qtype = MX
5252

53+
5354
// TODO: 6.2.4 Query normal Qtype = NS
55+
#[tokio::test]
56+
async fn query_ns_type() {
57+
let response = query_response("example.com", "NS").await;
58+
if let Ok(rrs) = response {
59+
assert_eq!(rrs.len(), 2);
60+
61+
if let Rdata::NS(ns1) = rrs[0].get_rdata() {
62+
assert_eq!(
63+
ns1.get_nsdname(),
64+
DomainName::new_from_str("a.iana-servers.net"))
65+
} else {
66+
panic!("First record is not type NS");
67+
}
68+
69+
if let Rdata::NS(ns) = rrs[1].get_rdata() {
70+
assert_eq!(
71+
ns.get_nsdname(),
72+
DomainName::new_from_str("b.iana-servers.net"))
73+
} else {
74+
panic!("Second record is not type NS");
75+
}
76+
77+
} else {
78+
panic!("No response received")
79+
}
80+
}
5481

5582
// TODO: 6.2.5 Dominio mal escrito Qtype = A
5683

0 commit comments

Comments
 (0)