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=e25853a736fc36ee6c83dbd903af2a0f08b8c9bf;hb=cfe3a97837951ebbedb337dc988027f10c49f714;hp=ca2d80771d9fa91cd47223f17d86e1307ddf6e00;hpb=30beed0f1ba785f25a9a87d527c00311440054d1;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 ca2d80771d..e25853a736 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,10 +1,23 @@ +/* + * 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 com.google.common.util.concurrent.FluentFuture; +import com.google.common.util.concurrent.ListenableFuture; import java.util.Collections; +import java.util.List; +import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; -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.mockito.Mockito; +import org.opendaylight.mdsal.binding.api.WriteTransaction; +import org.opendaylight.mdsal.binding.dom.adapter.test.AbstractDataBrokerTest; +import org.opendaylight.mdsal.common.api.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; @@ -24,43 +37,78 @@ public abstract class FRMTest extends AbstractDataBrokerTest { 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(); - nodeBuilder.setKey(nodeKey); + nodeBuilder.withKey(nodeKey); nodeBuilder.addAugmentation(FlowCapableNode.class, fcnBuilder.build()); 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()); - assertCommit(writeTx.submit()); + assertCommit(writeTx.commit()); + } + + // TODO: remove with mdsal-3.0.7 or later + @SuppressWarnings("unchecked") + protected static final void assertCommit(FluentFuture future) { + assertCommit((ListenableFuture) future); } 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.submit().get(); + writeTx.delete(LogicalDatastoreType.OPERATIONAL, + InstanceIdentifier.create(Nodes.class).child(Node.class, nodeKey)); + writeTx.commit().get(); } public void addTable(final TableKey tableKey, final NodeKey nodeKey) { addFlowCapableNode(nodeKey); - final Table table = new TableBuilder().setKey(tableKey).setFlow(Collections.emptyList()).build(); + final Table table = new TableBuilder().withKey(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()); + assertCommit(writeTx.commit()); } - public ForwardingRulesManagerConfig getConfig(){ + 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.lenient().when(configurationService.getProperty(Mockito.eq("disable-reconciliation"), Mockito.any())) + .thenReturn(config.isDisableReconciliation()); + + Mockito.lenient().when(configurationService.getProperty(Mockito.eq("stale-marking-enabled"), Mockito.any())) + .thenReturn(config.isStaleMarkingEnabled()); + + Mockito.lenient().when(configurationService.getProperty(Mockito.eq("reconciliation-retry-count"), + Mockito.any())).thenReturn(config.getReconciliationRetryCount()); + + Mockito.lenient().when(configurationService.getProperty(Mockito.eq("bundle-based-reconciliation-enabled"), + Mockito.any())).thenReturn(config.isBundleBasedReconciliationEnabled()); + + return configurationService; + } + protected Callable listSize(List list) { + // The condition supplier part + return list::size; } }