FRM performance refactoring:
[controller.git] / opendaylight / md-sal / forwardingrules-manager / src / test / java / test / mock / util / FRMTest.java
1 package test.mock.util;
2
3 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
4 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
5 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
6 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeBuilder;
7 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
8 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodesBuilder;
9 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeBuilder;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
12 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
13
14 import java.util.Collections;
15 import java.util.concurrent.ExecutionException;
16
17 public abstract class FRMTest extends AbstractDataBrokerTest{
18
19     public void addFlowCapableNode(NodeKey nodeKey) throws ExecutionException, InterruptedException {
20         Nodes nodes = new NodesBuilder().setNode(Collections.<Node>emptyList()).build();
21         InstanceIdentifier<Node> flowNodeIdentifier = InstanceIdentifier.create(Nodes.class)
22                 .child(Node.class, nodeKey);
23
24         FlowCapableNodeBuilder fcnBuilder = new FlowCapableNodeBuilder();
25         NodeBuilder nodeBuilder = new NodeBuilder();
26         nodeBuilder.setKey(nodeKey);
27         nodeBuilder.addAugmentation(FlowCapableNode.class, fcnBuilder.build());
28
29         WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
30         writeTx.put(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(Nodes.class), nodes);
31         writeTx.put(LogicalDatastoreType.OPERATIONAL, flowNodeIdentifier, nodeBuilder.build());
32         writeTx.put(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(Nodes.class), nodes);
33         writeTx.put(LogicalDatastoreType.CONFIGURATION, flowNodeIdentifier, nodeBuilder.build());
34         assertCommit(writeTx.submit());
35     }
36
37     public void removeNode(NodeKey nodeKey) throws ExecutionException, InterruptedException {
38         WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
39         writeTx.delete(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(Nodes.class).child(Node.class, nodeKey));
40         writeTx.submit().get();
41     }
42 }