use std::net::SocketAddr;
use socket9::{AF_INET, AF_INET6, AF_UNIX, So9SockDomain, address::{So9AddrDomain, So9SocketAddr}, sa_family_t};
use uds_fork::UnixSocketAddr;
#[test]
fn test_addr_1()
{
let ipv4: SocketAddr = "127.0.0.1:80".parse().unwrap();
assert_eq!(ipv4.get_addr_domain(), So9SockDomain::IPV4);
let sa9 = So9SocketAddr::from(&ipv4);
assert_eq!(sa9.get_sa_fam(), AF_INET as sa_family_t);
let ipv4_b: SocketAddr = sa9.try_into().unwrap();
assert_eq!(ipv4, ipv4_b);
}
#[test]
fn test_addr_2()
{
let ipv6: SocketAddr = "[d969:15c5:fc23:395a:67e3:ab97:ade9:fd24]:80".parse().unwrap();
assert_eq!(ipv6.get_addr_domain(), So9SockDomain::IPV6);
let sa9 = So9SocketAddr::from(&ipv6);
assert_eq!(sa9.get_sa_fam(), AF_INET6 as sa_family_t);
let ipv6_b: SocketAddr = sa9.try_into().unwrap();
assert_eq!(ipv6, ipv6_b);
}
#[test]
fn test_addr_3()
{
let unix_path: UnixSocketAddr = UnixSocketAddr::from_path("/tmp/sock.sock").unwrap();
assert_eq!(unix_path.get_addr_domain(), So9SockDomain::UNIX);
let sa9 = So9SocketAddr::from(&unix_path);
assert_eq!(sa9.get_sa_fam(), AF_UNIX as sa_family_t);
let unix_path_b: UnixSocketAddr = sa9.try_into().unwrap();
assert_eq!(&unix_path, &unix_path_b);
}