Added TierConstraint and MeteredConstraint

Change-Id: Iadc50c98dc0ba7092313f880df8055ab0e401c29
diff --git a/core/common/src/test/java/org/onosproject/codec/impl/ConstraintCodecTest.java b/core/common/src/test/java/org/onosproject/codec/impl/ConstraintCodecTest.java
index 569a775..2fdac58 100644
--- a/core/common/src/test/java/org/onosproject/codec/impl/ConstraintCodecTest.java
+++ b/core/common/src/test/java/org/onosproject/codec/impl/ConstraintCodecTest.java
@@ -31,7 +31,9 @@
 import org.onosproject.net.intent.constraint.DomainConstraint;
 import org.onosproject.net.intent.constraint.LatencyConstraint;
 import org.onosproject.net.intent.constraint.LinkTypeConstraint;
+import org.onosproject.net.intent.constraint.MeteredConstraint;
 import org.onosproject.net.intent.constraint.ObstacleConstraint;
+import org.onosproject.net.intent.constraint.TierConstraint;
 import org.onosproject.net.intent.constraint.WaypointConstraint;
 
 import com.fasterxml.jackson.databind.JsonNode;
@@ -196,4 +198,37 @@
         Constraint constraint = getConstraint("DomainConstraint.json");
         assertThat(constraint, instanceOf(DomainConstraint.class));
     }
+
+    /**
+     * Tests metered constraint.
+     */
+    @Test
+    public void meteredConstraint() {
+        Constraint constraint = getConstraint("MeteredConstraint.json");
+        assertThat(constraint, instanceOf(MeteredConstraint.class));
+
+        MeteredConstraint meteredConstraint = (MeteredConstraint) constraint;
+
+        assertThat(meteredConstraint.isUseMetered(), is(true));
+    }
+
+    /**
+     * Tests tier constraint.
+     */
+    @Test
+    public void tierConstraint() {
+        Constraint constraint = getConstraint("TierConstraint.json");
+        assertThat(constraint, instanceOf(TierConstraint.class));
+
+        TierConstraint tierConstraint = (TierConstraint) constraint;
+
+        assertThat(tierConstraint.isInclusive(), is(true));
+        assertThat(tierConstraint.costType(), is(TierConstraint.CostType.ORDER));
+
+        assertThat(tierConstraint.tiers().get(0), is(3));
+        assertThat(tierConstraint.tiers().get(1), is(2));
+        assertThat(tierConstraint.tiers().get(2), is(1));
+    }
+
+
 }
diff --git a/core/common/src/test/resources/org/onosproject/codec/impl/MeteredConstraint.json b/core/common/src/test/resources/org/onosproject/codec/impl/MeteredConstraint.json
new file mode 100644
index 0000000..435f603
--- /dev/null
+++ b/core/common/src/test/resources/org/onosproject/codec/impl/MeteredConstraint.json
@@ -0,0 +1,4 @@
+{
+  "type":"MeteredConstraint",
+  "metered": true
+}
diff --git a/core/common/src/test/resources/org/onosproject/codec/impl/TierConstraint.json b/core/common/src/test/resources/org/onosproject/codec/impl/TierConstraint.json
new file mode 100644
index 0000000..4da785d
--- /dev/null
+++ b/core/common/src/test/resources/org/onosproject/codec/impl/TierConstraint.json
@@ -0,0 +1,6 @@
+{
+  "type":"TierConstraint",
+  "inclusive": true,
+  "costType": "ORDER",
+  "tiers": [3, 2, 1]
+}