use blvm_node::network::dns_seeds::{resolve_dns_seeds, MAINNET_DNS_SEEDS, TESTNET_DNS_SEEDS};
#[tokio::test]
async fn test_dns_seeds_constants() {
assert!(!MAINNET_DNS_SEEDS.is_empty());
assert!(!TESTNET_DNS_SEEDS.is_empty());
}
#[tokio::test]
async fn test_resolve_dns_seeds_empty_seeds() {
let seeds = vec![];
let addresses = resolve_dns_seeds(&seeds, 8333, 10).await;
assert!(addresses.is_empty());
}
#[tokio::test]
async fn test_resolve_dns_seeds_invalid_seed() {
let seeds = vec!["invalid-dns-seed-that-does-not-exist-12345.example.com"];
let addresses = resolve_dns_seeds(&seeds, 8333, 10).await;
assert!(addresses.len() <= 10);
}
#[tokio::test]
async fn test_resolve_dns_seeds_max_addresses() {
let seeds = vec!["localhost"]; let addresses = resolve_dns_seeds(&seeds, 8333, 5).await;
assert!(addresses.len() <= 5);
}
#[tokio::test]
async fn test_resolve_dns_seeds_port() {
let seeds = vec!["localhost"]; let addresses = resolve_dns_seeds(&seeds, 8334, 10).await;
for addr in &addresses {
assert_eq!(addr.port, 8334);
}
}
#[tokio::test]
async fn test_resolve_dns_seeds_multiple_seeds() {
let seeds = vec!["invalid-seed-1.example.com", "invalid-seed-2.example.com"];
let addresses = resolve_dns_seeds(&seeds, 8333, 10).await;
assert!(addresses.len() <= 10);
}
#[test]
fn test_mainnet_dns_seeds_not_empty() {
assert!(!MAINNET_DNS_SEEDS.is_empty());
for seed in MAINNET_DNS_SEEDS {
assert!(!seed.is_empty());
assert!(!seed.contains(' '));
}
}
#[test]
fn test_testnet_dns_seeds_not_empty() {
assert!(!TESTNET_DNS_SEEDS.is_empty());
for seed in TESTNET_DNS_SEEDS {
assert!(!seed.is_empty());
assert!(!seed.contains(' '));
}
}
#[test]
fn test_dns_seeds_no_duplicates() {
let mut seen = std::collections::HashSet::new();
for seed in MAINNET_DNS_SEEDS {
assert!(seen.insert(seed), "Duplicate DNS seed: {seed}");
}
let mut seen = std::collections::HashSet::new();
for seed in TESTNET_DNS_SEEDS {
assert!(seen.insert(seed), "Duplicate DNS seed: {seed}");
}
}