provisioning-platform/crates/orchestrator/tests/test_dns_integration.rs

76 lines
2.1 KiB
Rust

//! DNS Integration Tests — exercise the post-D.2 DnsManager facade.
#![allow(unused_variables)]
use std::net::IpAddr;
use provisioning_orchestrator::dns::{DnsManager, DnsRecord, DnsRecordType};
#[tokio::test]
async fn test_dns_manager_initialization() {
let manager = DnsManager::new("http://localhost:53".to_string(), true, 300);
assert!(manager.auto_register());
assert_eq!(manager.default_ttl(), 300);
}
#[tokio::test]
async fn test_dns_registration_disabled() {
let manager = DnsManager::new(
"http://localhost:53".to_string(),
false, // Disabled
300,
);
let ip: IpAddr = "192.168.1.10".parse().expect("valid IP");
let result = manager
.register_server_dns("test-server.example.com", ip)
.await;
// Should succeed but do nothing when disabled.
assert!(result.is_ok());
}
#[tokio::test]
async fn test_dns_record_creation() {
let record = DnsRecord {
name: "test.example.com".to_string(),
record_type: DnsRecordType::A,
value: "192.168.1.10".to_string(),
ttl: 300,
};
assert_eq!(record.name, "test.example.com");
assert_eq!(record.record_type, DnsRecordType::A);
assert_eq!(record.value, "192.168.1.10");
assert_eq!(record.ttl, 300);
}
#[tokio::test]
async fn test_dns_record_type_ipv4() {
let ip: IpAddr = "192.168.1.10".parse().expect("valid IP");
match ip {
IpAddr::V4(_) => {
assert_eq!(DnsRecordType::A, DnsRecordType::A);
}
IpAddr::V6(_) => panic!("Expected IPv4"),
}
}
#[tokio::test]
async fn test_dns_record_type_ipv6() {
let ip: IpAddr = "2001:db8::1".parse().expect("valid IP");
match ip {
IpAddr::V4(_) => panic!("Expected IPv6"),
IpAddr::V6(_) => {
assert_eq!(DnsRecordType::AAAA, DnsRecordType::AAAA);
}
}
}
#[test]
fn test_dns_record_type_display() {
assert_eq!(DnsRecordType::A.to_string(), "A");
assert_eq!(DnsRecordType::AAAA.to_string(), "AAAA");
assert_eq!(DnsRecordType::CNAME.to_string(), "CNAME");
assert_eq!(DnsRecordType::TXT.to_string(), "TXT");
}