ONOS-741 - JSON codecs for constraints

Change-Id: I6eebc2ef5f6c28956f0944524aa90f44cebfcc60
diff --git a/web/api/src/test/java/org/onosproject/codec/impl/IntentCodecTest.java b/web/api/src/test/java/org/onosproject/codec/impl/IntentCodecTest.java
index fd84f17..a230273 100644
--- a/web/api/src/test/java/org/onosproject/codec/impl/IntentCodecTest.java
+++ b/web/api/src/test/java/org/onosproject/codec/impl/IntentCodecTest.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.codec.impl;
 
+import java.time.Duration;
 import java.util.List;
 
 import org.junit.Test;
@@ -25,6 +26,7 @@
 import org.onosproject.core.ApplicationId;
 import org.onosproject.core.DefaultApplicationId;
 import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DeviceId;
 import org.onosproject.net.HostId;
 import org.onosproject.net.NetTestTools;
 import org.onosproject.net.PortNumber;
@@ -36,8 +38,13 @@
 import org.onosproject.net.intent.HostToHostIntent;
 import org.onosproject.net.intent.AbstractIntentTest;
 import org.onosproject.net.intent.PointToPointIntent;
+import org.onosproject.net.intent.constraint.AnnotationConstraint;
+import org.onosproject.net.intent.constraint.AsymmetricPathConstraint;
 import org.onosproject.net.intent.constraint.BandwidthConstraint;
 import org.onosproject.net.intent.constraint.LambdaConstraint;
+import org.onosproject.net.intent.constraint.LatencyConstraint;
+import org.onosproject.net.intent.constraint.ObstacleConstraint;
+import org.onosproject.net.intent.constraint.WaypointConstraint;
 import org.onosproject.net.resource.Bandwidth;
 import org.onosproject.net.resource.Lambda;
 
@@ -45,6 +52,7 @@
 import com.google.common.collect.ImmutableList;
 
 import static org.onosproject.codec.impl.IntentJsonMatcher.matchesIntent;
+import static org.onosproject.net.NetTestTools.did;
 import static org.onosproject.net.NetTestTools.hid;
 
 
@@ -111,6 +119,9 @@
     public void intentWithTreatmentSelectorAndConstraints() {
         ConnectPoint ingress = NetTestTools.connectPoint("ingress", 1);
         ConnectPoint egress = NetTestTools.connectPoint("egress", 2);
+        DeviceId did1 = did("device1");
+        DeviceId did2 = did("device2");
+        DeviceId did3 = did("device3");
         final TrafficSelector selector = DefaultTrafficSelector.builder()
                 .matchIPProtocol((byte) 3)
                 .matchMplsLabel(4)
@@ -125,9 +136,16 @@
                 .setOutput(PortNumber.CONTROLLER)
                 .setEthDst(MacAddress.BROADCAST)
                 .build();
-        final Constraint constraint1 = new BandwidthConstraint(Bandwidth.valueOf(1.0));
-        final Constraint constraint2 = new LambdaConstraint(Lambda.valueOf(3));
-        final List<Constraint> constraints = ImmutableList.of(constraint1, constraint2);
+
+        final List<Constraint> constraints =
+                ImmutableList.of(
+                    new BandwidthConstraint(Bandwidth.valueOf(1.0)),
+                    new LambdaConstraint(Lambda.valueOf(3)),
+                    new AnnotationConstraint("key", 33.0),
+                    new AsymmetricPathConstraint(),
+                    new LatencyConstraint(Duration.ofSeconds(2)),
+                    new ObstacleConstraint(did1, did2),
+                    new WaypointConstraint(did3));
 
         final PointToPointIntent intent =
                 new PointToPointIntent(appId, selector, treatment,