Adds the "Quality of Service" to the OpenDayLight Neutron
[neutron.git] / neutron-spi / src / test / java / org / opendaylight / neutron / spi / NeutronQosJAXBTest.java
diff --git a/neutron-spi/src/test/java/org/opendaylight/neutron/spi/NeutronQosJAXBTest.java b/neutron-spi/src/test/java/org/opendaylight/neutron/spi/NeutronQosJAXBTest.java
new file mode 100644 (file)
index 0000000..17c7704
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2016 Intel, Corp.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.neutron.spi;
+
+import java.math.BigInteger;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
+import javax.xml.bind.JAXBException;
+
+public class NeutronQosJAXBTest {
+
+    private static final String NeutronQosPolicy_sourceJson =
+        "{" + "\"id\": \"d6220bbb-35f3-48ab-8eae-69c60aef3546\"," +
+        "\"tenant_id\": \"aa902936679e4ea29bfe1158e3450a13\"," + "\"name\": \"jaxb-test\", " +
+        " \"shared\": false," + "\"rule_type\": \"rule\", " +
+        "\"bandwidth_limit_rules\": [ {\"id\": \"d6220bbb-35f3-48ab-8eae-69c60aef3547\", " +
+        "\"tenant_id\": \"aa902936679e4ea29bfe1158e3450a14\"," + "\"max_kbps\": 25, " +
+        "\"max_burst_kbps\": 100 } ]," +
+        "\"dscp_marking_rules\": [ {\"id\": \"d6220bbb-35f3-48ab-8eae-69c60aef3547\"," +
+        " \"tenant_id\": \"aa902936679e4ea29bfe1158e3450a14\", " +
+        "\"dscp_mark\": 8 } ] " +
+        "}";
+
+    @Test
+    public void test_NeutronQosPolicy_JAXB() throws JAXBException {
+        NeutronQosPolicy testObject = new NeutronQosPolicy();
+        NeutronQosPolicy neutronObject = (NeutronQosPolicy) JaxbTestHelper
+            .jaxbUnmarshall(testObject, NeutronQosPolicy_sourceJson);
+        Assert.assertEquals("NeutronQosPolicy JAXB Test 1: Testing id failed",
+            "d6220bbb-35f3-48ab-8eae-69c60aef3546", neutronObject.getID());
+
+        Assert.assertEquals("NeutronQosPolicy JAXB Test 2: Testing tenant_id failed",
+            "aa902936679e4ea29bfe1158e3450a13", neutronObject.getTenantID());
+
+        Assert.assertEquals("NeutronQosPolicy JAXB Test 3 : Testing Name failed", "jaxb-test",
+            neutronObject.getQosPolicyName());
+
+        Assert.assertFalse("NeutronQosPolicy JaxB Test 4 : Testing Shared failed",
+            neutronObject.getPolicyIsShared());
+
+        List<NeutronQosBandwidthRule> bwPolicyRules = neutronObject.getBwLimitRules();
+
+        Assert.assertEquals(
+            "NeutronQosPolicy JAXB Test 5.0: Testing Bandwidth Policy length failed", 1,
+            bwPolicyRules.size());
+
+        Assert.assertEquals("NeutronQosPolicy JaxB Test 5.1 : Testing ID failed",
+            "d6220bbb-35f3-48ab-8eae-69c60aef3547", bwPolicyRules.get(0).uuid);
+
+        Assert.assertEquals("NeutronQosPolicy JaxB Test 5.2 : Testing Tenant ID failed",
+            "aa902936679e4ea29bfe1158e3450a14", bwPolicyRules.get(0).tenantID);
+
+        Assert.assertEquals(
+            "NeutronQosPolicy JaxB Test 5.3 : Testing Max ingress/Egress value failed",
+            new BigInteger("25"), bwPolicyRules.get(0).maxKbps);
+
+        Assert.assertEquals("NeutronQosPolicy JaxB Test 5.4 : Testing Maximum Burst value failed",
+            new BigInteger("100"), bwPolicyRules.get(0).maxBurstKbps);
+
+        List<NeutronQosDscpMarkingRule> dscpPolicyRules = neutronObject.getDscpRules();
+
+        Assert.assertEquals(
+            "NeutronQosPolicy JAXB Test 6.0: Testing Bandwidth Policy length failed", 1,
+            dscpPolicyRules.size());
+
+        Assert.assertEquals("NeutronQosPolicy JaxB Test 6.1 : Testing ID failed",
+            "d6220bbb-35f3-48ab-8eae-69c60aef3547", dscpPolicyRules.get(0).uuid);
+
+        Assert.assertEquals("NeutronQosPolicy JaxB Test 6.2 : Testing Tenant ID failed",
+            "aa902936679e4ea29bfe1158e3450a14", dscpPolicyRules.get(0).tenantID);
+
+        Assert.assertEquals(
+            "NeutronQosPolicy JaxB Test 6.3 : Testing Max ingress/Egress value failed",
+            new Short("8"), dscpPolicyRules.get(0).dscpMark);
+    }
+}