/* * Copyright (c) 2013 IBM Corporation. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.openflowplugin.applications.statistics.manager.impl.helper; import static org.junit.Assert.assertEquals; import java.math.BigInteger; import org.junit.BeforeClass; import org.junit.Test; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.Flow; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.TunnelBuilder; public final class FlowComparatorFactoryTest { private static Flow statsFlow; private static Flow storedFlow; private static Flow nullFlow; private static Flow copyStatsFlow; @BeforeClass public static void initialization() { statsFlow = prepareFlow("statsFlow", (short) 1, 1, 1); copyStatsFlow = prepareFlow("statsFlow", (short) 1, 1, 1); storedFlow = prepareFlow("storedFlow", (short) 2, 2, 2); nullFlow = new FlowBuilder().build(); } private static Flow prepareFlow(String containerName, short tableId, int priority, int tunnelId) { final FlowBuilder flowBuilder = new FlowBuilder(); flowBuilder.setContainerName(containerName); flowBuilder.setTableId(tableId); flowBuilder.setPriority(priority); flowBuilder.setMatch(new MatchBuilder().setTunnel( new TunnelBuilder().setTunnelId(BigInteger.valueOf(tunnelId)).build()).build()); return flowBuilder.build(); } @Test public void containerNameComparationTest() { final SimpleComparator<Flow> simpleComparator = FlowComparatorFactory.createContainerName(); compareViaComparator(simpleComparator); assertEquals(false, simpleComparator.areObjectsEqual(nullFlow, storedFlow)); } @Test public void tableIdComparationTest() { final SimpleComparator<Flow> simpleComparator = FlowComparatorFactory.createTableId(); compareViaComparator(simpleComparator); assertEquals(false, simpleComparator.areObjectsEqual(nullFlow, storedFlow)); } @Test public void priorityComparationTest() { final SimpleComparator<Flow> simpleComparator = FlowComparatorFactory.createPriority(); compareViaComparator(simpleComparator); assertEquals(false, simpleComparator.areObjectsEqual(storedFlow, nullFlow)); } @Test public void matchComparationTest() { final SimpleComparator<Flow> simpleComparator = FlowComparatorFactory.createMatch(); compareViaComparator(simpleComparator); assertEquals(false, simpleComparator.areObjectsEqual(nullFlow, storedFlow)); assertEquals(true, simpleComparator.areObjectsEqual(statsFlow, copyStatsFlow)); assertEquals(false,simpleComparator.areObjectsEqual(statsFlow,nullFlow)); } private void compareViaComparator(SimpleComparator<Flow> simpleComparator) { assertEquals(true, simpleComparator.areObjectsEqual(nullFlow, nullFlow)); assertEquals(false, simpleComparator.areObjectsEqual(statsFlow, storedFlow)); assertEquals(true, simpleComparator.areObjectsEqual(statsFlow, statsFlow)); } }