Adding more unit tests.
Made some classes abstract which should have been.
diff --git a/core/api/src/test/java/org/onlab/onos/net/ConnectPointTest.java b/core/api/src/test/java/org/onlab/onos/net/ConnectPointTest.java
new file mode 100644
index 0000000..ebb5217
--- /dev/null
+++ b/core/api/src/test/java/org/onlab/onos/net/ConnectPointTest.java
@@ -0,0 +1,37 @@
+package org.onlab.onos.net;
+
+import com.google.common.testing.EqualsTester;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+import static org.onlab.onos.net.Device.Type.SWITCH;
+import static org.onlab.onos.net.DeviceId.deviceId;
+import static org.onlab.onos.net.PortNumber.portNumber;
+
+/**
+ * Test of the connetion point entity.
+ */
+public class ConnectPointTest {
+
+ public static final DeviceId DID1 = deviceId("1");
+ public static final DeviceId DID2 = deviceId("2");
+ public static final PortNumber P1 = portNumber(1);
+ public static final PortNumber P2 = portNumber(2);
+
+ @Test
+ public void basics() {
+ ConnectPoint p = new ConnectPoint(DID1, P2);
+ assertEquals("incorrect element id", DID1, p.deviceId());
+ assertEquals("incorrect element id", P2, p.port());
+ }
+
+
+ @Test
+ public void testEquality() {
+ new EqualsTester()
+ .addEqualityGroup(new ConnectPoint(DID1, P1), new ConnectPoint(DID1, P1))
+ .addEqualityGroup(new ConnectPoint(DID1, P2), new ConnectPoint(DID1, P2))
+ .addEqualityGroup(new ConnectPoint(DID2, P1), new ConnectPoint(DID2, P1))
+ .testEquals();
+ }
+}
\ No newline at end of file
diff --git a/core/api/src/test/java/org/onlab/onos/net/DefaultAnnotationsTest.java b/core/api/src/test/java/org/onlab/onos/net/DefaultAnnotationsTest.java
new file mode 100644
index 0000000..274f4b8
--- /dev/null
+++ b/core/api/src/test/java/org/onlab/onos/net/DefaultAnnotationsTest.java
@@ -0,0 +1,68 @@
+package org.onlab.onos.net;
+
+import org.junit.Test;
+
+import static com.google.common.collect.ImmutableSet.of;
+import static org.junit.Assert.*;
+import static org.onlab.onos.net.DefaultAnnotations.builder;
+
+/**
+ * Tests of the default annotations.
+ */
+public class DefaultAnnotationsTest {
+
+ private DefaultAnnotations annotations;
+
+ @Test
+ public void basics() {
+ annotations = builder().set("foo", "1").set("bar", "2").build();
+ assertEquals("incorrect keys", of("foo", "bar"), annotations.keys());
+ assertEquals("incorrect value", "1", annotations.value("foo"));
+ assertEquals("incorrect value", "2", annotations.value("bar"));
+ }
+
+ @Test
+ public void empty() {
+ annotations = builder().build();
+ assertTrue("incorrect keys", annotations.keys().isEmpty());
+ }
+
+ @Test
+ public void remove() {
+ annotations = builder().remove("foo").set("bar", "2").build();
+ assertEquals("incorrect keys", of("foo", "bar"), annotations.keys());
+ assertNull("incorrect value", annotations.value("foo"));
+ assertEquals("incorrect value", "2", annotations.value("bar"));
+ }
+
+ @Test
+ public void merge() {
+ annotations = builder().set("foo", "1").set("bar", "2").build();
+ assertEquals("incorrect keys", of("foo", "bar"), annotations.keys());
+
+ SparseAnnotations updates = builder().remove("foo").set("bar", "3").set("goo", "4").build();
+
+ annotations = DefaultAnnotations.merge(annotations, updates);
+ assertEquals("incorrect keys", of("goo", "bar"), annotations.keys());
+ assertNull("incorrect value", annotations.value("foo"));
+ assertEquals("incorrect value", "3", annotations.value("bar"));
+ }
+
+ @Test
+ public void noopMerge() {
+ annotations = builder().set("foo", "1").set("bar", "2").build();
+ assertEquals("incorrect keys", of("foo", "bar"), annotations.keys());
+
+ SparseAnnotations updates = builder().build();
+ assertSame("same annotations expected", annotations,
+ DefaultAnnotations.merge(annotations, updates));
+ assertSame("same annotations expected", annotations,
+ DefaultAnnotations.merge(annotations, null));
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void badMerge() {
+ DefaultAnnotations.merge(null, null);
+ }
+
+}
\ No newline at end of file
diff --git a/core/api/src/test/java/org/onlab/onos/net/DefaultDeviceTest.java b/core/api/src/test/java/org/onlab/onos/net/DefaultDeviceTest.java
index ea1c8fd..f7bc617 100644
--- a/core/api/src/test/java/org/onlab/onos/net/DefaultDeviceTest.java
+++ b/core/api/src/test/java/org/onlab/onos/net/DefaultDeviceTest.java
@@ -40,6 +40,18 @@
@Test
public void basics() {
Device device = new DefaultDevice(PID, DID1, SWITCH, MFR, HW, SW, SN1);
+ validate(device);
+ }
+
+ @Test
+ public void annotations() {
+ Device device = new DefaultDevice(PID, DID1, SWITCH, MFR, HW, SW, SN1,
+ DefaultAnnotations.builder().set("foo", "bar").build());
+ validate(device);
+ assertEquals("incorrect provider", "bar", device.annotations().value("foo"));
+ }
+
+ private void validate(Device device) {
assertEquals("incorrect provider", PID, device.providerId());
assertEquals("incorrect id", DID1, device.id());
assertEquals("incorrect type", SWITCH, device.type());
@@ -50,4 +62,4 @@
assertEquals("incorrect serial", SN1, device.serialNumber());
}
-}
+}
\ No newline at end of file