1 use tokio::net;
2 use tokio_test::assert_ok;
3 
4 use std::io;
5 use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr};
6 
7 #[tokio::test]
lookup_socket_addr()8 async fn lookup_socket_addr() {
9     let addr: SocketAddr = "127.0.0.1:8000".parse().unwrap();
10 
11     let actual = assert_ok!(net::lookup_host(addr).await).collect::<Vec<_>>();
12     assert_eq!(vec![addr], actual);
13 }
14 
15 #[tokio::test]
lookup_str_socket_addr()16 async fn lookup_str_socket_addr() {
17     let addr: SocketAddr = "127.0.0.1:8000".parse().unwrap();
18 
19     let actual = assert_ok!(net::lookup_host("127.0.0.1:8000").await).collect::<Vec<_>>();
20     assert_eq!(vec![addr], actual);
21 }
22 
23 #[tokio::test]
resolve_dns() -> io::Result<()>24 async fn resolve_dns() -> io::Result<()> {
25     let mut hosts = net::lookup_host("localhost:3000").await?;
26     let host = hosts.next().unwrap();
27 
28     let expected = if host.is_ipv4() {
29         SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 3000)
30     } else {
31         SocketAddr::new(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1)), 3000)
32     };
33     assert_eq!(host, expected);
34 
35     Ok(())
36 }
37