Add missing license headers
[openflowplugin.git] / openflowplugin / src / test / java / org / opendaylight / openflowplugin / openflow / md / core / sal / convertor / common / OrderComparatorTest.java
1 /*
2  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common;
9
10 import org.junit.Assert;
11 import org.junit.Test;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.Ordered;
13 import org.opendaylight.yangtools.yang.binding.DataContainer;
14
15 /**
16  * To test OrderComparator
17  */
18 public class OrderComparatorTest {
19
20     @Test
21     public void testBothObjectsNull() {
22         try {
23             OrderComparator.<MockOrderedObject>build().compare(null, null);
24             org.junit.Assert.fail("Passing null to OrderCompartor should raise " +
25                 "a NullPointerException");
26         } catch (NullPointerException npe) {
27             // expected
28         }
29     }
30
31     @Test
32     public void testEitherObjectNull() {
33         try {
34             MockOrderedObject obj1 = new MockOrderedObject();
35             obj1.setOrder(0);
36             MockOrderedObject obj2 = null;
37
38             OrderComparator.<MockOrderedObject>build().compare(obj1, obj2);
39             org.junit.Assert.fail("Passing null to OrderCompartor should raise " +
40                 "a NullPointerException");
41         } catch (NullPointerException npe) {
42             // expected
43         }
44
45         try {
46             MockOrderedObject obj1 = null;
47             MockOrderedObject obj2 = new MockOrderedObject();
48             obj2.setOrder(1);
49
50             OrderComparator.<MockOrderedObject>build().compare(obj1, obj2);
51             org.junit.Assert.fail("Passing null to OrderCompartor should raise " +
52                 "a NullPointerException");
53         } catch (NullPointerException npe) {
54             // expected
55         }
56     }
57
58     @Test
59     public void testCompare() {
60         MockOrderedObject obj1 = new MockOrderedObject();
61         obj1.setOrder(0);
62         MockOrderedObject obj2 = new MockOrderedObject();
63         obj2.setOrder(1);
64
65         Assert.assertEquals(-1,
66             OrderComparator.<MockOrderedObject>build().compare(obj1, obj2));
67
68         obj1 = new MockOrderedObject();
69         obj1.setOrder(1);
70         obj2 = new MockOrderedObject();
71         obj2.setOrder(0);
72
73         Assert.assertEquals(1,
74             OrderComparator.<MockOrderedObject>build().compare(obj1, obj2));
75
76         obj1 = new MockOrderedObject();
77         obj1.setOrder(1);
78         obj2 = new MockOrderedObject();
79         obj2.setOrder(1);
80
81         Assert.assertEquals(0,
82             OrderComparator.<MockOrderedObject>build().compare(obj1, obj2));
83     }
84
85
86     public class MockOrderedObject implements Ordered {
87         private Integer order;
88
89         public void setOrder(Integer order) {
90             this.order = order;
91         }
92
93         @Override
94         public Integer getOrder() {
95             return order;
96         }
97
98         @Override
99         public Class<? extends DataContainer> getImplementedInterface() {
100             return Ordered.class;
101         }
102     }
103
104 }