aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2023-02-19 13:03:21 +0100
committergjoranv <gv@verizonmedia.com>2023-02-19 13:14:24 +0100
commite1e62691a520feef8f77eaa30b4415633a4c9a1f (patch)
treee5b0e178b21ee4016e2df32dfef0fc320a0a1e69
parentb6dbcdb3a7443b26ef6421130b3f0504ca17d28b (diff)
Add unit test for VersionedIpAddress.
-rw-r--r--node-admin/pom.xml5
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/network/VersionedIpAddressTest.java62
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();
+ }
+
+}