Add missing license headers
[openflowplugin.git] / applications / statistics-manager / src / test / java / org / opendaylight / openflowplugin / applications / statistics / manager / impl / helper / FlowComparatorFactoryTest.java
1 /*
2  * Copyright (c) 2013 IBM Corporation.  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.applications.statistics.manager.impl.helper;
9
10 import static org.junit.Assert.assertEquals;
11
12 import java.math.BigInteger;
13 import org.junit.BeforeClass;
14 import org.junit.Test;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowBuilder;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.Flow;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.TunnelBuilder;
19
20 public final class FlowComparatorFactoryTest {
21
22     private static Flow statsFlow;
23     private static Flow storedFlow;
24     private static Flow nullFlow;
25     private static Flow copyStatsFlow;
26
27     @BeforeClass
28     public static void initialization() {
29         statsFlow = prepareFlow("statsFlow", (short) 1, 1, 1);
30         copyStatsFlow = prepareFlow("statsFlow", (short) 1, 1, 1);
31         storedFlow = prepareFlow("storedFlow", (short) 2, 2, 2);
32         nullFlow = new FlowBuilder().build();
33     }
34
35     private static Flow prepareFlow(String containerName, short tableId, int priority, int tunnelId) {
36         final FlowBuilder flowBuilder = new FlowBuilder();
37         flowBuilder.setContainerName(containerName);
38         flowBuilder.setTableId(tableId);
39         flowBuilder.setPriority(priority);
40         flowBuilder.setMatch(new MatchBuilder().setTunnel(
41                 new TunnelBuilder().setTunnelId(BigInteger.valueOf(tunnelId)).build()).build());
42         return flowBuilder.build();
43     }
44
45     @Test
46     public void containerNameComparationTest() {
47         final SimpleComparator<Flow> simpleComparator = FlowComparatorFactory.createContainerName();
48         compareViaComparator(simpleComparator);
49         assertEquals(false, simpleComparator.areObjectsEqual(nullFlow, storedFlow));
50     }
51
52
53     @Test
54     public void tableIdComparationTest() {
55         final SimpleComparator<Flow> simpleComparator = FlowComparatorFactory.createTableId();
56         compareViaComparator(simpleComparator);
57         assertEquals(false, simpleComparator.areObjectsEqual(nullFlow, storedFlow));
58     }
59
60     @Test
61     public void priorityComparationTest() {
62         final SimpleComparator<Flow> simpleComparator = FlowComparatorFactory.createPriority();
63         compareViaComparator(simpleComparator);
64         assertEquals(false, simpleComparator.areObjectsEqual(storedFlow, nullFlow));
65     }
66
67     @Test
68     public void matchComparationTest() {
69         final SimpleComparator<Flow> simpleComparator = FlowComparatorFactory.createMatch();
70         compareViaComparator(simpleComparator);
71         assertEquals(false, simpleComparator.areObjectsEqual(nullFlow, storedFlow));
72         assertEquals(true, simpleComparator.areObjectsEqual(statsFlow, copyStatsFlow));
73         assertEquals(false,simpleComparator.areObjectsEqual(statsFlow,nullFlow));
74     }
75
76     private void compareViaComparator(SimpleComparator<Flow> simpleComparator) {
77         assertEquals(true, simpleComparator.areObjectsEqual(nullFlow, nullFlow));
78         assertEquals(false, simpleComparator.areObjectsEqual(statsFlow, storedFlow));
79         assertEquals(true, simpleComparator.areObjectsEqual(statsFlow, statsFlow));
80     }
81 }