2 * Copyright IBM Corporation, 2013. All rights reserved.
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
8 package org.opendaylight.openflowplugin.applications.statistics.manager.impl.helper;
10 import static org.junit.Assert.assertEquals;
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;
20 public final class FlowComparatorFactoryTest {
22 private static Flow statsFlow;
23 private static Flow storedFlow;
24 private static Flow nullFlow;
25 private static Flow copyStatsFlow;
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();
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();
46 public void containerNameComparationTest() {
47 final SimpleComparator<Flow> simpleComparator = FlowComparatorFactory.createContainerName();
48 compareViaComparator(simpleComparator);
49 assertEquals(false, simpleComparator.areObjectsEqual(nullFlow, storedFlow));
54 public void tableIdComparationTest() {
55 final SimpleComparator<Flow> simpleComparator = FlowComparatorFactory.createTableId();
56 compareViaComparator(simpleComparator);
57 assertEquals(false, simpleComparator.areObjectsEqual(nullFlow, storedFlow));
61 public void priorityComparationTest() {
62 final SimpleComparator<Flow> simpleComparator = FlowComparatorFactory.createPriority();
63 compareViaComparator(simpleComparator);
64 assertEquals(false, simpleComparator.areObjectsEqual(storedFlow, nullFlow));
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));
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));