diff options
author | gjoranv <gv@verizonmedia.com> | 2023-02-19 13:03:21 +0100 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2023-02-19 13:14:24 +0100 |
commit | e1e62691a520feef8f77eaa30b4415633a4c9a1f (patch) | |
tree | e5b0e178b21ee4016e2df32dfef0fc320a0a1e69 | |
parent | b6dbcdb3a7443b26ef6421130b3f0504ca17d28b (diff) |
Add unit test for VersionedIpAddress.
-rw-r--r-- | node-admin/pom.xml | 5 | ||||
-rw-r--r-- | node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/network/VersionedIpAddressTest.java | 62 |
2 files changed, 67 insertions, 0 deletions
diff --git a/node-admin/pom.xml b/node-admin/pom.xml index 90bb72efbcd..0f153663e3d 100644 --- a/node-admin/pom.xml +++ b/node-admin/pom.xml @@ -86,6 +86,11 @@ <!-- Test --> <dependency> + <groupId>com.google.guava</groupId> + <artifactId>guava-testlib</artifactId> + <scope>test</scope> + </dependency> + <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <scope>test</scope> diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/network/VersionedIpAddressTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/network/VersionedIpAddressTest.java new file mode 100644 index 00000000000..32fbcf9f6a4 --- /dev/null +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/network/VersionedIpAddressTest.java @@ -0,0 +1,62 @@ +package com.yahoo.vespa.hosted.node.admin.task.util.network; + +import com.google.common.testing.EqualsTester; +import org.junit.jupiter.api.Test; + +import java.util.List; +import java.util.stream.Stream; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * @author gjoranv + */ +public class VersionedIpAddressTest { + + @Test + void ip4_address_can_be_generated_from_string() { + var ip4 = VersionedIpAddress.from("10.0.0.1"); + assertEquals(IPVersion.IPv4, ip4.version()); + assertEquals("10.0.0.1", ip4.asString()); + } + + @Test + void ip6_address_can_be_generated_from_string() { + var ip6 = VersionedIpAddress.from("::1"); + assertEquals(IPVersion.IPv6, ip6.version()); + assertEquals("::1", ip6.asString()); + } + + @Test + void they_are_sorted_by_version_then_by_address() { + var ip4 = VersionedIpAddress.from("10.0.0.1"); + var ip4_2 = VersionedIpAddress.from("127.0.0.1"); + var ip6 = VersionedIpAddress.from("::1"); + var ip6_2 = VersionedIpAddress.from("::2"); + + var sorted = Stream.of(ip4_2, ip6, ip4, ip6_2) + .sorted() + .toList(); + assertEquals(List.of(ip6, ip6_2, ip4, ip4_2), sorted); + } + + @Test + void endpoint_with_port_is_generated_correctly_for_both_versions() { + var ip4 = VersionedIpAddress.from("10.0.0.1"); + var ip6 = VersionedIpAddress.from("::1"); + + assertEquals("10.0.0.1:8080", ip4.asEndpoint(8080)); + assertEquals("[::1]:8080", ip6.asEndpoint(8080)); + } + + @Test + void equals_and_hashCode_are_implemented() { + new EqualsTester() + .addEqualityGroup(VersionedIpAddress.from("::1"), VersionedIpAddress.from("::1")) + .addEqualityGroup(VersionedIpAddress.from("::2")) + .addEqualityGroup(VersionedIpAddress.from("127.0.0.1"), VersionedIpAddress.from("127.0.0.1")) + .addEqualityGroup(VersionedIpAddress.from("10.0.0.1")) + .testEquals(); + } + +} |