Currently, we ignore the 'order' field in the action-list.
[openflowplugin.git] / openflowplugin / src / test / java / org / opendaylight / openflowplugin / openflow / md / core / sal / convertor / common / OrderComparatorTest.java
diff --git a/openflowplugin/src/test/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/common/OrderComparatorTest.java b/openflowplugin/src/test/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/common/OrderComparatorTest.java
new file mode 100644 (file)
index 0000000..25eec27
--- /dev/null
@@ -0,0 +1,97 @@
+package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.Ordered;
+import org.opendaylight.yangtools.yang.binding.DataContainer;
+
+/**
+ * To test OrderComparator
+ */
+public class OrderComparatorTest {
+
+    @Test
+    public void testBothObjectsNull() {
+        try {
+            OrderComparator.<MockOrderedObject>toInstance().compare(null, null);
+            org.junit.Assert.fail("Passing null to OrderCompartor should raise " +
+                "a NullPointerException");
+        } catch (NullPointerException npe) {
+            // expected
+        }
+    }
+
+    @Test
+    public void testEitherObjectNull() {
+        try {
+            MockOrderedObject obj1 = new MockOrderedObject();
+            obj1.setOrder(0);
+            MockOrderedObject obj2 = null;
+
+            OrderComparator.<MockOrderedObject>toInstance().compare(obj1, obj2);
+            org.junit.Assert.fail("Passing null to OrderCompartor should raise " +
+                "a NullPointerException");
+        } catch (NullPointerException npe) {
+            // expected
+        }
+
+        try {
+            MockOrderedObject obj1 = null;
+            MockOrderedObject obj2 = new MockOrderedObject();
+            obj2.setOrder(1);
+
+            OrderComparator.<MockOrderedObject>toInstance().compare(obj1, obj2);
+            org.junit.Assert.fail("Passing null to OrderCompartor should raise " +
+                "a NullPointerException");
+        } catch (NullPointerException npe) {
+            // expected
+        }
+    }
+
+    @Test
+    public void testCompare() {
+        MockOrderedObject obj1 = new MockOrderedObject();
+        obj1.setOrder(0);
+        MockOrderedObject obj2 = new MockOrderedObject();
+        obj2.setOrder(1);
+
+        Assert.assertEquals(-1,
+            OrderComparator.<MockOrderedObject>toInstance().compare(obj1, obj2));
+
+        obj1 = new MockOrderedObject();
+        obj1.setOrder(1);
+        obj2 = new MockOrderedObject();
+        obj2.setOrder(0);
+
+        Assert.assertEquals(1,
+            OrderComparator.<MockOrderedObject>toInstance().compare(obj1, obj2));
+
+        obj1 = new MockOrderedObject();
+        obj1.setOrder(1);
+        obj2 = new MockOrderedObject();
+        obj2.setOrder(1);
+
+        Assert.assertEquals(0,
+            OrderComparator.<MockOrderedObject>toInstance().compare(obj1, obj2));
+    }
+
+
+    public class MockOrderedObject implements Ordered {
+        private Integer order;
+
+        public void setOrder(Integer order) {
+            this.order = order;
+        }
+
+        @Override
+        public Integer getOrder() {
+            return order;
+        }
+
+        @Override
+        public Class<? extends DataContainer> getImplementedInterface() {
+            return Ordered.class;
+        }
+    }
+
+}