Unit tets for instruction JSON codecs
Fixed several bugs in codecs turned up by unit tests
Change-Id: Icddb31aa3d2cb58612a0578772d24ff5f113d073
diff --git a/web/api/src/main/java/org/onosproject/codec/impl/ConnectivityIntentCodec.java b/web/api/src/main/java/org/onosproject/codec/impl/ConnectivityIntentCodec.java
index f460913..3a7aa15 100644
--- a/web/api/src/main/java/org/onosproject/codec/impl/ConnectivityIntentCodec.java
+++ b/web/api/src/main/java/org/onosproject/codec/impl/ConnectivityIntentCodec.java
@@ -20,8 +20,10 @@
import org.onosproject.net.flow.TrafficSelector;
import org.onosproject.net.flow.TrafficTreatment;
import org.onosproject.net.intent.ConnectivityIntent;
+import org.onosproject.net.intent.Constraint;
import org.onosproject.net.intent.Intent;
+import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import static com.google.common.base.Preconditions.checkNotNull;
@@ -50,6 +52,17 @@
result.set("treatment", treatmentCodec.encode(intent.treatment(), context));
}
+ if (intent.constraints() != null) {
+ final ArrayNode jsonConstraints = result.putArray("constraints");
+
+ if (intent.constraints() != null) {
+ for (final Constraint constraint : intent.constraints()) {
+ // TODO: constraint should have its own codec
+ jsonConstraints.add(constraint.toString());
+ }
+ }
+ }
+
return result;
}
}
diff --git a/web/api/src/main/java/org/onosproject/codec/impl/CriterionCodec.java b/web/api/src/main/java/org/onosproject/codec/impl/CriterionCodec.java
index 81033f2..e6fbea8 100644
--- a/web/api/src/main/java/org/onosproject/codec/impl/CriterionCodec.java
+++ b/web/api/src/main/java/org/onosproject/codec/impl/CriterionCodec.java
@@ -50,6 +50,7 @@
case ETH_SRC:
case ETH_DST:
final Criteria.EthCriterion ethCriterion = (Criteria.EthCriterion) criterion;
+ result.put("mac", ethCriterion.mac().toString());
break;
case ETH_TYPE:
@@ -60,6 +61,8 @@
case IPV4_SRC:
case IPV6_SRC:
+ case IPV4_DST:
+ case IPV6_DST:
final Criteria.IPCriterion iPCriterion = (Criteria.IPCriterion) criterion;
result.put("ip", iPCriterion.ip().toString());
break;