2da3536679bdef9a6ed2a9b7ff7811dc84c77c5a
[openflowplugin.git] / openflowplugin / src / test / java / org / opendaylight / openflowplugin / openflow / md / core / sal / convertor / common / OrderComparatorTest.java
1 package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common;
2
3 import org.junit.Assert;
4 import org.junit.Test;
5 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.Ordered;
6 import org.opendaylight.yangtools.yang.binding.DataContainer;
7
8 /**
9  * To test OrderComparator
10  */
11 public class OrderComparatorTest {
12
13     @Test
14     public void testBothObjectsNull() {
15         try {
16             OrderComparator.<MockOrderedObject>build().compare(null, null);
17             org.junit.Assert.fail("Passing null to OrderCompartor should raise " +
18                 "a NullPointerException");
19         } catch (NullPointerException npe) {
20             // expected
21         }
22     }
23
24     @Test
25     public void testEitherObjectNull() {
26         try {
27             MockOrderedObject obj1 = new MockOrderedObject();
28             obj1.setOrder(0);
29             MockOrderedObject obj2 = null;
30
31             OrderComparator.<MockOrderedObject>build().compare(obj1, obj2);
32             org.junit.Assert.fail("Passing null to OrderCompartor should raise " +
33                 "a NullPointerException");
34         } catch (NullPointerException npe) {
35             // expected
36         }
37
38         try {
39             MockOrderedObject obj1 = null;
40             MockOrderedObject obj2 = new MockOrderedObject();
41             obj2.setOrder(1);
42
43             OrderComparator.<MockOrderedObject>build().compare(obj1, obj2);
44             org.junit.Assert.fail("Passing null to OrderCompartor should raise " +
45                 "a NullPointerException");
46         } catch (NullPointerException npe) {
47             // expected
48         }
49     }
50
51     @Test
52     public void testCompare() {
53         MockOrderedObject obj1 = new MockOrderedObject();
54         obj1.setOrder(0);
55         MockOrderedObject obj2 = new MockOrderedObject();
56         obj2.setOrder(1);
57
58         Assert.assertEquals(-1,
59             OrderComparator.<MockOrderedObject>build().compare(obj1, obj2));
60
61         obj1 = new MockOrderedObject();
62         obj1.setOrder(1);
63         obj2 = new MockOrderedObject();
64         obj2.setOrder(0);
65
66         Assert.assertEquals(1,
67             OrderComparator.<MockOrderedObject>build().compare(obj1, obj2));
68
69         obj1 = new MockOrderedObject();
70         obj1.setOrder(1);
71         obj2 = new MockOrderedObject();
72         obj2.setOrder(1);
73
74         Assert.assertEquals(0,
75             OrderComparator.<MockOrderedObject>build().compare(obj1, obj2));
76     }
77
78
79     public class MockOrderedObject implements Ordered {
80         private Integer order;
81
82         public void setOrder(Integer order) {
83             this.order = order;
84         }
85
86         @Override
87         public Integer getOrder() {
88             return order;
89         }
90
91         @Override
92         public Class<? extends DataContainer> getImplementedInterface() {
93             return Ordered.class;
94         }
95     }
96
97 }