X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=applications%2Fforwardingrules-manager%2Fsrc%2Ftest%2Fjava%2Ftest%2Fmock%2Futil%2FFRMTest.java;h=8156b1a67cdf73606b62a3dd60b2b44e0b8a8165;hb=6a24c5ddc4aa7d2c1aacd4237844e38e9ce595f3;hp=a92c33432d189b8858490bcb5f98de458427e171;hpb=9612f13c472d0ce230d8b9a72ada9e6d4afdec71;p=openflowplugin.git diff --git a/applications/forwardingrules-manager/src/test/java/test/mock/util/FRMTest.java b/applications/forwardingrules-manager/src/test/java/test/mock/util/FRMTest.java index a92c33432d..8156b1a67c 100644 --- a/applications/forwardingrules-manager/src/test/java/test/mock/util/FRMTest.java +++ b/applications/forwardingrules-manager/src/test/java/test/mock/util/FRMTest.java @@ -1,25 +1,38 @@ +/* + * Copyright (c) 2014, 2017 Cisco Systems, Inc. and others. 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 test.mock.util; import java.util.Collections; import java.util.concurrent.ExecutionException; +import org.mockito.Mockito; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.binding.test.AbstractDataBrokerTest; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.openflowplugin.api.openflow.configuration.ConfigurationService; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.TableBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.TableKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodesBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.forwardingrules.manager.config.rev160511.ForwardingRulesManagerConfig; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.forwardingrules.manager.config.rev160511.ForwardingRulesManagerConfigBuilder; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public abstract class FRMTest extends AbstractDataBrokerTest { - public void addFlowCapableNode(NodeKey nodeKey) throws ExecutionException, InterruptedException { + public void addFlowCapableNode(NodeKey nodeKey) { Nodes nodes = new NodesBuilder().setNode(Collections.emptyList()).build(); - InstanceIdentifier flowNodeIdentifier = InstanceIdentifier.create(Nodes.class) - .child(Node.class, nodeKey); FlowCapableNodeBuilder fcnBuilder = new FlowCapableNodeBuilder(); NodeBuilder nodeBuilder = new NodeBuilder(); @@ -28,6 +41,8 @@ public abstract class FRMTest extends AbstractDataBrokerTest { WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction(); writeTx.put(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(Nodes.class), nodes); + + InstanceIdentifier flowNodeIdentifier = InstanceIdentifier.create(Nodes.class).child(Node.class, nodeKey); writeTx.put(LogicalDatastoreType.OPERATIONAL, flowNodeIdentifier, nodeBuilder.build()); writeTx.put(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(Nodes.class), nodes); writeTx.put(LogicalDatastoreType.CONFIGURATION, flowNodeIdentifier, nodeBuilder.build()); @@ -36,7 +51,49 @@ public abstract class FRMTest extends AbstractDataBrokerTest { public void removeNode(NodeKey nodeKey) throws ExecutionException, InterruptedException { WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction(); - writeTx.delete(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(Nodes.class).child(Node.class, nodeKey)); + writeTx.delete(LogicalDatastoreType.OPERATIONAL, + InstanceIdentifier.create(Nodes.class).child(Node.class, nodeKey)); writeTx.submit().get(); } + + public void addTable(final TableKey tableKey, final NodeKey nodeKey) { + addFlowCapableNode(nodeKey); + final Table table = new TableBuilder().setKey(tableKey).setFlow(Collections.emptyList()).build(); + WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction(); + InstanceIdentifier tableII = InstanceIdentifier.create(Nodes.class).child(Node.class, nodeKey) + .augmentation(FlowCapableNode.class).child(Table.class, tableKey); + writeTx.put(LogicalDatastoreType.CONFIGURATION, tableII, table); + assertCommit(writeTx.submit()); + } + + public ForwardingRulesManagerConfig getConfig() { + ForwardingRulesManagerConfigBuilder cfgBuilder = new ForwardingRulesManagerConfigBuilder(); + cfgBuilder.setDisableReconciliation(false); + cfgBuilder.setStaleMarkingEnabled(false); + cfgBuilder.setReconciliationRetryCount(0); + cfgBuilder.setBundleBasedReconciliationEnabled(false); + return cfgBuilder.build(); + } + + public ConfigurationService getConfigurationService() { + final ConfigurationService configurationService = Mockito.mock(ConfigurationService.class); + final ForwardingRulesManagerConfig config = getConfig(); + + Mockito.when(configurationService.registerListener(Mockito.any())).thenReturn(() -> { + }); + + Mockito.when(configurationService.getProperty(Mockito.eq("disable-reconciliation"), Mockito.any())) + .thenReturn(config.isDisableReconciliation()); + + Mockito.when(configurationService.getProperty(Mockito.eq("stale-marking-enabled"), Mockito.any())) + .thenReturn(config.isStaleMarkingEnabled()); + + Mockito.when(configurationService.getProperty(Mockito.eq("reconciliation-retry-count"), Mockito.any())) + .thenReturn(config.getReconciliationRetryCount()); + + Mockito.when(configurationService.getProperty(Mockito.eq("bundle-based-reconciliation-enabled"), Mockito.any())) + .thenReturn(config.isBundleBasedReconciliationEnabled()); + + return configurationService; + } }