Add unit tests for constraint object serializations
Duration is additionally registered because LatencyConstraint has it
Change-Id: Ibbf31761b789fa71fb6cb1a1155f5ea0680853ce
diff --git a/core/store/serializers/src/main/java/org/onlab/onos/store/serializers/KryoNamespaces.java b/core/store/serializers/src/main/java/org/onlab/onos/store/serializers/KryoNamespaces.java
index a8fd721..07db4a6 100644
--- a/core/store/serializers/src/main/java/org/onlab/onos/store/serializers/KryoNamespaces.java
+++ b/core/store/serializers/src/main/java/org/onlab/onos/store/serializers/KryoNamespaces.java
@@ -16,6 +16,7 @@
package org.onlab.onos.store.serializers;
import java.net.URI;
+import java.time.Duration;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -123,7 +124,8 @@
HashMap.class,
HashSet.class,
LinkedList.class,
- byte[].class
+ byte[].class,
+ Duration.class
)
.build();
diff --git a/core/store/serializers/src/test/java/org/onlab/onos/store/serializers/KryoSerializerTest.java b/core/store/serializers/src/test/java/org/onlab/onos/store/serializers/KryoSerializerTest.java
index 1340bd8..ff5b250 100644
--- a/core/store/serializers/src/test/java/org/onlab/onos/store/serializers/KryoSerializerTest.java
+++ b/core/store/serializers/src/test/java/org/onlab/onos/store/serializers/KryoSerializerTest.java
@@ -52,6 +52,13 @@
import org.onlab.onos.net.resource.LambdaResourceAllocation;
import org.onlab.onos.net.resource.LinkResourceRequest;
import org.onlab.onos.net.resource.ResourceAllocation;
+import org.onlab.onos.net.intent.constraint.AnnotationConstraint;
+import org.onlab.onos.net.intent.constraint.BandwidthConstraint;
+import org.onlab.onos.net.intent.constraint.LambdaConstraint;
+import org.onlab.onos.net.intent.constraint.LatencyConstraint;
+import org.onlab.onos.net.intent.constraint.LinkTypeConstraint;
+import org.onlab.onos.net.intent.constraint.ObstacleConstraint;
+import org.onlab.onos.net.intent.constraint.WaypointConstraint;
import org.onlab.packet.ChassisId;
import org.onlab.packet.IpAddress;
import org.onlab.packet.Ip4Address;
@@ -66,6 +73,7 @@
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
+import java.time.Duration;
import static java.util.Arrays.asList;
import static org.junit.Assert.*;
@@ -287,6 +295,40 @@
testSerializable(new DefaultLinkResourceAllocations(request, allocations));
}
+ @Test
+ public void testLambdaConstraint() {
+ testSerializable(new LambdaConstraint(Lambda.valueOf(1)));
+ }
+
+ @Test
+ public void testBandwidthConstraint() {
+ testSerializable(new BandwidthConstraint(Bandwidth.valueOf(1000.0)));
+ }
+
+ @Test
+ public void testLinkTypeConstraint() {
+ testSerializable(new LinkTypeConstraint(true, Link.Type.DIRECT));
+ }
+
+ @Test
+ public void testLatencyConstraint() {
+ testSerializable(new LatencyConstraint(Duration.ofSeconds(10)));
+ }
+
+ @Test
+ public void testWaypointConstraint() {
+ testSerializable(new WaypointConstraint(deviceId("of:1"), deviceId("of:2")));
+ }
+
+ @Test
+ public void testObstacleConstraint() {
+ testSerializable(new ObstacleConstraint(deviceId("of:1"), deviceId("of:2")));
+ }
+
+ @Test
+ public void testAnnotationConstraint() {
+ testSerializable(new AnnotationConstraint("distance", 100.0));
+ }
@Test
public void testAnnotations() {