55
66package aws.sdk.kotlin.crt.io
77
8+ import aws.sdk.kotlin.crt.use
89import kotlinx.coroutines.test.runTest
910import kotlin.test.Test
1011import kotlin.test.assertEquals
@@ -16,62 +17,74 @@ import kotlin.test.assertTrue
1617class CrtHostResolverTest {
1718 @Test
1819 fun testResolveLocalhost () = runTest {
19- val hr = HostResolver ()
20- val addresses = hr .resolve(" localhost" )
21- assertTrue(addresses.isNotEmpty())
20+ HostResolver ().use {
21+ val addresses = it .resolve(" localhost" )
22+ assertTrue(addresses.isNotEmpty())
2223
23- addresses.forEach { addr ->
24- assertEquals(" localhost" , addr.host)
24+ addresses.forEach { addr ->
25+ assertEquals(" localhost" , addr.host)
2526
26- val localHostAddress = when (addr.addressType) {
27- AddressType .IpV4 -> " 127.0.0.1"
28- AddressType .IpV6 -> " ::1"
27+ val localHostAddress = when (addr.addressType) {
28+ AddressType .IpV4 -> " 127.0.0.1"
29+ AddressType .IpV6 -> " ::1"
30+ }
31+ assertEquals(localHostAddress, addr.address)
2932 }
30- assertEquals(localHostAddress, addr.address)
3133 }
3234 }
3335
3436 @Test
3537 fun testResolveIpv4Address () = runTest {
36- val addresses = HostResolver ().resolve(" 127.0.0.1" )
37- assertTrue(addresses.isNotEmpty())
38+ HostResolver ().use {
39+ val addresses = it.resolve(" 127.0.0.1" )
40+ assertTrue(addresses.isNotEmpty())
3841
39- addresses.forEach { addr ->
40- assertEquals(AddressType .IpV4 , addr.addressType)
41- assertEquals(" 127.0.0.1" , addr.address)
42+ addresses.forEach { addr ->
43+ assertEquals(AddressType .IpV4 , addr.addressType)
44+ assertEquals(" 127.0.0.1" , addr.address)
45+ }
4246 }
4347 }
4448
4549 @Test
4650 fun testResolveIpv6Address () = runTest {
47- val addresses = HostResolver ().resolve(" ::1" )
48- assertTrue(addresses.isNotEmpty())
51+ HostResolver ().use {
52+ val addresses = it.resolve(" ::1" )
53+ assertTrue(addresses.isNotEmpty())
4954
50- addresses.forEach { addr ->
51- assertEquals(AddressType .IpV6 , addr.addressType)
52- assertEquals(" ::1" , addr.address)
55+ addresses.forEach { addr ->
56+ assertEquals(AddressType .IpV6 , addr.addressType)
57+ assertEquals(" ::1" , addr.address)
58+ }
5359 }
5460 }
5561
5662 @Test
5763 fun testResolveExampleDomain () = runTest {
58- val addresses = HostResolver ().resolve(" example.com" )
59- assertNotNull(addresses)
60- assertTrue(addresses.isNotEmpty())
64+ HostResolver ().use {
65+ val addresses = it.resolve(" example.com" )
66+ assertNotNull(addresses)
67+ assertTrue(addresses.isNotEmpty())
6168
62- addresses.forEach { addr ->
63- assertEquals(" example.com" , addr.host)
64- when (addr.addressType) {
65- AddressType .IpV4 -> assertEquals(3 , addr.address.count { it == ' .' })
66- AddressType .IpV6 -> assertEquals(if (addr.address.contains(" ::" )) 6 else 7 , addr.address.count { it == ' :' })
69+ addresses.forEach { addr ->
70+ assertEquals(" example.com" , addr.host)
71+ when (addr.addressType) {
72+ AddressType .IpV4 -> assertEquals(3 , addr.address.count { it == ' .' })
73+ AddressType .IpV6 -> assertEquals(if (addr.address.contains(" ::" )) 6 else 7 , addr.address.count { it == ' :' })
74+ }
6775 }
6876 }
6977 }
7078
7179 @Test
7280 fun testResolveInvalidDomain () = runTest {
7381 assertFails {
74- HostResolver ().resolve(" this-domain-definitely-does-not-exist-12345.local" )
82+ val hr = HostResolver ()
83+ try {
84+ hr.resolve(" this-domain-definitely-does-not-exist-12345.local" )
85+ } finally {
86+ hr.close()
87+ }
7588 }
7689 }
7790}
0 commit comments