2 * Copyright (c) 2015 Cisco Systems, Inc. and others. 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
9 package org.opendaylight.groupbasedpolicy.neutron.ovsdb.util;
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertFalse;
13 import static org.junit.Assert.assertNotNull;
14 import static org.junit.Assert.assertNull;
15 import static org.mockito.Matchers.any;
16 import static org.mockito.Mockito.mock;
17 import static org.mockito.Mockito.never;
18 import static org.mockito.Mockito.verify;
19 import static org.mockito.Mockito.when;
21 import java.util.ArrayList;
22 import java.util.Arrays;
23 import java.util.List;
25 import org.junit.Before;
26 import org.junit.Test;
27 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
28 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
29 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
30 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
31 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
32 import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
33 import org.opendaylight.groupbasedpolicy.neutron.ovsdb.AbstractTunnelType;
34 import org.opendaylight.ovsdb.southbound.SouthboundConstants;
35 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
36 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
37 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey;
38 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
39 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
40 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder;
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeVxlan;
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation;
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentationBuilder;
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeName;
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeRef;
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentation;
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentationBuilder;
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeRef;
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation;
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntry;
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ConnectionInfoBuilder;
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.Options;
53 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointBuilder;
54 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey;
55 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
56 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TpId;
57 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
58 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
59 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
60 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
62 import com.google.common.base.Optional;
63 import com.google.common.util.concurrent.CheckedFuture;
65 public class OvsdbHelperTest {
67 private static final String TUNNEL_PREFIX = "tunnelPrefix";
69 private DataBroker dataBroker;
70 private InstanceIdentifier<OvsdbTerminationPointAugmentation> tpIid;
71 private OvsdbBridgeAugmentation ovsdbBridgeAugmentation;
72 private OvsdbNodeAugmentation ovsdbNodeAugmentation;
73 private Optional<OvsdbBridgeAugmentation> ovsdbBridgeOptional;
74 private Optional<OvsdbTerminationPointAugmentation> ovsdbTerminationPointOptional;
75 private Optional<Node> nodeOptional;
77 private AbstractTunnelType abstractTunnelType;
78 private ReadOnlyTransaction readTransaction;
79 private ReadWriteTransaction readWriteTransaction;
80 private CheckedFuture<Optional<OvsdbBridgeAugmentation>, ReadFailedException> ovsdbBridgeFuture;
81 private CheckedFuture<Optional<Node>, ReadFailedException> nodeFuture;
82 private CheckedFuture<Optional<OvsdbTerminationPointAugmentation>, ReadFailedException> ovsdbTerminationPointFuture;
84 @SuppressWarnings({"unchecked", "rawtypes"})
86 public void setUp() throws Exception {
87 dataBroker = mock(DataBroker.class);
88 tpIid = InstanceIdentifier.create(NetworkTopology.class)
89 .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID))
91 .child(TerminationPoint.class)
92 .augmentation(OvsdbTerminationPointAugmentation.class);
94 readTransaction = mock(ReadOnlyTransaction.class);
95 when(dataBroker.newReadOnlyTransaction()).thenReturn(readTransaction);
96 readWriteTransaction = mock(ReadWriteTransaction.class);
97 when(dataBroker.newReadWriteTransaction()).thenReturn(readWriteTransaction);
98 CheckedFuture<Void, TransactionCommitFailedException> submitFuture = mock(CheckedFuture.class);
99 when(readWriteTransaction.submit()).thenReturn(submitFuture);
101 ovsdbBridgeFuture = mock(CheckedFuture.class);
102 ovsdbBridgeOptional = mock(Optional.class);
103 when(ovsdbBridgeFuture.checkedGet()).thenReturn(ovsdbBridgeOptional);
104 when(ovsdbBridgeOptional.isPresent()).thenReturn(true);
105 ovsdbBridgeAugmentation = mock(OvsdbBridgeAugmentation.class);
106 when(ovsdbBridgeOptional.get()).thenReturn(ovsdbBridgeAugmentation);
107 OvsdbBridgeName bridgeName = mock(OvsdbBridgeName.class);
108 when(ovsdbBridgeAugmentation.getBridgeName()).thenReturn(bridgeName);
110 OvsdbNodeRef bareIid = mock(OvsdbNodeRef.class);
111 when(ovsdbBridgeAugmentation.getManagedBy()).thenReturn(bareIid);
112 when(bareIid.getValue()).thenReturn((InstanceIdentifier) InstanceIdentifier.create(Node.class));
114 nodeFuture = mock(CheckedFuture.class);
115 nodeOptional = mock(Optional.class);
116 when(nodeFuture.checkedGet()).thenReturn(nodeOptional);
117 when(nodeOptional.isPresent()).thenReturn(true);
118 node = mock(Node.class);
119 when(nodeOptional.get()).thenReturn(node);
120 when(node.getAugmentation(OvsdbBridgeAugmentation.class)).thenReturn(ovsdbBridgeAugmentation);
122 ovsdbTerminationPointFuture = mock(CheckedFuture.class);
123 ovsdbTerminationPointOptional = mock(Optional.class);
124 when(ovsdbTerminationPointFuture.checkedGet()).thenReturn(ovsdbTerminationPointOptional);
125 when(ovsdbTerminationPointOptional.isPresent()).thenReturn(true);
126 OvsdbTerminationPointAugmentation ovsdbTp = mock(OvsdbTerminationPointAugmentation.class);
127 when(ovsdbTerminationPointOptional.get()).thenReturn(ovsdbTp);
129 abstractTunnelType = mock(AbstractTunnelType.class);
130 when(abstractTunnelType.getTunnelPrefix()).thenReturn(TUNNEL_PREFIX);
132 ovsdbNodeAugmentation = mock(OvsdbNodeAugmentation.class);
133 when(node.getAugmentation(OvsdbNodeAugmentation.class)).thenReturn(ovsdbNodeAugmentation);
136 @SuppressWarnings("unchecked")
138 public void getOvsdbBridgeFromTerminationPointTest() {
139 when(readTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(
141 assertNotNull(OvsdbHelper.getOvsdbBridgeFromTerminationPoint(tpIid, dataBroker));
142 verify(readTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
145 @SuppressWarnings("unchecked")
147 public void getOvsdbBridgeFromTerminationPointTestPresentFalse() {
148 when(readTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(
150 when(ovsdbBridgeOptional.isPresent()).thenReturn(false);
151 assertNull(OvsdbHelper.getOvsdbBridgeFromTerminationPoint(tpIid, dataBroker));
152 verify(readTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
155 @SuppressWarnings("unchecked")
157 public void getOvsdbBridgeFromTerminationPointTestInvalidIid() {
158 InstanceIdentifier<OvsdbTerminationPointAugmentation> invalidIid = InstanceIdentifier.create(OvsdbTerminationPointAugmentation.class);
159 assertNull(OvsdbHelper.getOvsdbBridgeFromTerminationPoint(invalidIid, dataBroker));
160 verify(readTransaction, never()).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
163 @SuppressWarnings({"unchecked", "rawtypes"})
165 public void getNodeFromBridgeRefTest() {
166 OvsdbBridgeRef bridgeRef = mock(OvsdbBridgeRef.class);
167 when(bridgeRef.getValue()).thenReturn((InstanceIdentifier) tpIid);
168 when(readTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(nodeFuture);
169 assertNotNull(OvsdbHelper.getNodeFromBridgeRef(bridgeRef, dataBroker));
170 verify(readTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
173 @SuppressWarnings({"unchecked", "rawtypes"})
175 public void getNodeFromBridgeRefTestPresentFalse() {
176 OvsdbBridgeRef bridgeRef = mock(OvsdbBridgeRef.class);
177 when(bridgeRef.getValue()).thenReturn((InstanceIdentifier) tpIid);
178 when(readTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(nodeFuture);
179 when(nodeOptional.isPresent()).thenReturn(false);
180 assertNull(OvsdbHelper.getNodeFromBridgeRef(bridgeRef, dataBroker));
181 verify(readTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
184 @SuppressWarnings("unchecked")
186 public void getOvsdbTerminationPointTest() {
187 when(readTransaction.read(any(LogicalDatastoreType.class),
188 any(InstanceIdentifier.class))).thenReturn(ovsdbTerminationPointFuture);
189 assertNotNull(OvsdbHelper.getOvsdbTerminationPoint(tpIid, dataBroker));
190 verify(readTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
193 @SuppressWarnings("unchecked")
195 public void getOvsdbTerminationPointTestPresentFalse() {
196 when(readTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(
197 ovsdbTerminationPointFuture);
198 when(ovsdbTerminationPointOptional.isPresent()).thenReturn(false);
199 assertNull(OvsdbHelper.getOvsdbTerminationPoint(tpIid, dataBroker));
200 verify(readTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
204 public void getNodeTest() {
205 NodeBuilder nodeBuilder = new NodeBuilder();
206 nodeBuilder.setKey(new NodeKey(new NodeId("nodeId")));
208 TerminationPointBuilder tpBuilder = new TerminationPointBuilder();
209 tpBuilder.setKey(new TerminationPointKey(new TpId("tpId")));
211 OvsdbBridgeAugmentationBuilder augmentationBuilder = new OvsdbBridgeAugmentationBuilder();
212 augmentationBuilder.setBridgeName(new OvsdbBridgeName("bridgeName"));
214 Node node = OvsdbHelper.getNode(nodeBuilder.build(), Arrays.asList(tpBuilder.build()), augmentationBuilder.build());
216 assertEquals("nodeId", node.getKey().getNodeId().getValue());
217 assertEquals(1, node.getTerminationPoint().size());
218 TerminationPoint terminationPoint = node.getTerminationPoint().get(0);
219 assertNotNull(terminationPoint);
220 assertEquals("tpId", terminationPoint.getKey().getTpId().getValue());
221 assertEquals("bridgeName", node.getAugmentation(OvsdbBridgeAugmentation.class).getBridgeName().getValue());
225 public void buildOvsdbBridgeAugmentationTest() {
226 final InstanceIdentifier<Node> nodeIid = InstanceIdentifier.builder(NetworkTopology.class)
227 .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID))
228 .child(Node.class).build();
230 OvsdbBridgeAugmentationBuilder bridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder();
231 bridgeAugmentationBuilder.setBridgeName(new OvsdbBridgeName("bridgeName"));
232 bridgeAugmentationBuilder.setManagedBy(new OvsdbNodeRef(nodeIid));
234 OvsdbNodeAugmentationBuilder nodeAugmentationBuilder = new OvsdbNodeAugmentationBuilder();
236 ConnectionInfoBuilder ciBuilder = new ConnectionInfoBuilder();
237 ciBuilder.setLocalIp(new IpAddress(new Ipv4Address("127.0.0.1")));
238 nodeAugmentationBuilder.setConnectionInfo(ciBuilder.build());
240 OvsdbBridgeAugmentation augmentation = OvsdbHelper.buildOvsdbBridgeAugmentation(
241 bridgeAugmentationBuilder.build(), nodeAugmentationBuilder.build());
242 assertNotNull(augmentation);
243 assertNotNull("bridgeName", augmentation.getBridgeName().getValue());
244 assertEquals(nodeIid, augmentation.getManagedBy().getValue());
245 assertEquals(1, augmentation.getControllerEntry().size());
246 ControllerEntry controllerEntry = augmentation.getControllerEntry().get(0);
247 assertNotNull(controllerEntry);
248 assertFalse(controllerEntry.getTarget().getValue().isEmpty());
252 public void buildOvsdbBridgeAugmentationTestManagerIpNull() {
253 final InstanceIdentifier<Node> nodeIid = InstanceIdentifier.builder(NetworkTopology.class)
254 .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID))
255 .child(Node.class).build();
257 OvsdbBridgeAugmentationBuilder bridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder();
258 bridgeAugmentationBuilder.setBridgeName(new OvsdbBridgeName("bridgeName"));
259 bridgeAugmentationBuilder.setManagedBy(new OvsdbNodeRef(nodeIid));
261 OvsdbNodeAugmentationBuilder nodeAugmentationBuilder = new OvsdbNodeAugmentationBuilder();
263 OvsdbBridgeAugmentation augmentation = OvsdbHelper.buildOvsdbBridgeAugmentation(
264 bridgeAugmentationBuilder.build(), nodeAugmentationBuilder.build());
265 assertNotNull(augmentation);
266 assertNotNull("bridgeName", augmentation.getBridgeName().getValue());
267 assertEquals(nodeIid, augmentation.getManagedBy().getValue());
268 assertNull(augmentation.getControllerEntry());
272 public void buildTerminationPointsTest() {
273 OvsdbBridgeAugmentationBuilder bridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder();
274 bridgeAugmentationBuilder.setBridgeName(new OvsdbBridgeName("bridgeName"));
276 List<Options> options = new ArrayList<Options>();
277 OvsdbHelper.setOption(options, "optionKey", "optionValue");
279 OvsdbTerminationPointAugmentation terminationPointAugmentation =
280 OvsdbHelper.buildOvsdbTerminationPointAugmentation(bridgeAugmentationBuilder.build(),
281 options, abstractTunnelType);
283 List<TerminationPoint> terminationPoints = OvsdbHelper.buildTerminationPoints(
284 bridgeAugmentationBuilder.build(), terminationPointAugmentation, abstractTunnelType);
285 assertNotNull(terminationPoints);
286 assertEquals(1, terminationPoints.size());
287 TerminationPoint terminationPoint = terminationPoints.get(0);
288 assertNotNull(terminationPoint);
289 assertEquals(TUNNEL_PREFIX + "bridgeName", terminationPoint.getTpId().getValue());
290 OvsdbTerminationPointAugmentation tpAugmentation = terminationPoint.getAugmentation(
291 OvsdbTerminationPointAugmentation.class);
292 assertNotNull(tpAugmentation);
293 assertEquals(TUNNEL_PREFIX + "bridgeName", tpAugmentation.getName());
294 assertEquals(1, tpAugmentation.getOptions().size());
295 Options tpOption = tpAugmentation.getOptions().get(0);
296 assertNotNull(tpOption);
297 assertEquals("optionKey", tpOption.getOption());
298 assertEquals("optionValue", tpOption.getValue());
299 assertEquals(TerminationPoint.class, terminationPoint.getImplementedInterface());
303 public void buildOvsdbTerminationPointAugmentationTest() {
304 OvsdbBridgeAugmentationBuilder bridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder();
305 bridgeAugmentationBuilder.setBridgeName(new OvsdbBridgeName("bridgeName"));
306 List<Options> expectedOptions = new ArrayList<Options>();
307 OvsdbHelper.setOption(expectedOptions, "optionKey", "optionValue");
308 OvsdbTerminationPointAugmentation augmentation = OvsdbHelper.buildOvsdbTerminationPointAugmentation(
309 bridgeAugmentationBuilder.build(), expectedOptions, abstractTunnelType);
310 assertNotNull(augmentation);
311 assertEquals(TUNNEL_PREFIX + "bridgeName", augmentation.getName());
312 assertEquals(1, augmentation.getOptions().size());
313 Options option = augmentation.getOptions().get(0);
314 assertNotNull(option);
315 assertEquals("optionKey", option.getOption());
316 assertEquals("optionValue", option.getValue());
317 assertEquals(InterfaceTypeVxlan.class, augmentation.getInterfaceType());
321 public void setOptionTest() {
322 List<Options> options = new ArrayList<Options>();
323 OvsdbHelper.setOption(options, "key1", "value1");
324 assertEquals(1, options.size());
325 Options option = options.get(0);
326 assertNotNull(option);
327 assertEquals("key1", option.getOption());
328 assertEquals("key1", option.getKey().getOption());
329 assertEquals("value1", option.getValue());
330 OvsdbHelper.setOption(options, "key2", "value2");
331 assertEquals(2, options.size());
332 option = options.get(0);
333 assertNotNull(option);
334 assertEquals("key1", option.getOption());
335 assertEquals("key1", option.getKey().getOption());
336 assertEquals("value1", option.getValue());
337 option = options.get(1);
338 assertNotNull(option);
339 assertEquals("key2", option.getOption());
340 assertEquals("key2", option.getKey().getOption());
341 assertEquals("value2", option.getValue());
345 public void getNodeIpTest() {
346 OvsdbNodeAugmentationBuilder nodeAugmentationBuilder = new OvsdbNodeAugmentationBuilder();
347 ConnectionInfoBuilder ciBuilder = new ConnectionInfoBuilder();
348 ciBuilder.setRemoteIp(new IpAddress(new Ipv4Address("192.168.50.10")));
349 nodeAugmentationBuilder.setConnectionInfo(ciBuilder.build());
351 IpAddress nodeIpAddress = OvsdbHelper.getNodeIp(nodeAugmentationBuilder.build());
352 assertNotNull(nodeIpAddress);
353 assertEquals("192.168.50.10", nodeIpAddress.getIpv4Address().getValue());
357 public void getNodeIpTestIpNotSet() {
358 OvsdbNodeAugmentationBuilder nodeAugmentationBuilder = new OvsdbNodeAugmentationBuilder();
359 nodeAugmentationBuilder.setConnectionInfo(new ConnectionInfoBuilder().build());
360 assertNull(OvsdbHelper.getNodeIp(nodeAugmentationBuilder.build()));
364 public void getNodeIpTestConnectionInfoNull() {
365 assertNull(OvsdbHelper.getNodeIp(new OvsdbNodeAugmentationBuilder().build()));
369 public void getManagedNodeTestManagedByNotSet() {
370 assertNull(OvsdbHelper.getManagerNode(new OvsdbBridgeAugmentationBuilder().build(), dataBroker));
373 @SuppressWarnings("unchecked")
375 public void getManagedNodeTestInvalidTargetTypeForManagedBy() {
376 final InstanceIdentifier<NetworkTopology> nodeIid = InstanceIdentifier.builder(NetworkTopology.class).build();
377 OvsdbBridgeAugmentationBuilder bridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder();
378 bridgeAugmentationBuilder.setManagedBy(new OvsdbNodeRef(nodeIid));
379 assertNull(OvsdbHelper.getManagerNode(bridgeAugmentationBuilder.build(), dataBroker));
380 verify(readTransaction, never()).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
383 @SuppressWarnings("unchecked")
385 public void getTopologyNodeTest() {
386 InstanceIdentifier<Node> nodeIid = InstanceIdentifier.create(Node.class);
387 when(readTransaction.read(any(LogicalDatastoreType.class),
388 any(InstanceIdentifier.class))).thenReturn(nodeFuture);
389 assertEquals(node, OvsdbHelper.getTopologyNode(nodeIid, dataBroker));
390 verify(readTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
393 @SuppressWarnings("unchecked")
395 public void getTopologyNodeTestPresentFalse() {
396 InstanceIdentifier<Node> nodeIid = InstanceIdentifier.create(Node.class);
397 when(readTransaction.read(any(LogicalDatastoreType.class),
398 any(InstanceIdentifier.class))).thenReturn(nodeFuture);
399 when(nodeOptional.isPresent()).thenReturn(false);
400 assertNull(OvsdbHelper.getTopologyNode(nodeIid, dataBroker));
401 verify(readTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
404 @SuppressWarnings("unchecked")
406 public void createTunnelPortTest() {
407 InstanceIdentifier<Node> nodeIid = InstanceIdentifier.create(Node.class);
408 when(readWriteTransaction.read(any(LogicalDatastoreType.class),
409 any(InstanceIdentifier.class))).thenReturn(nodeFuture);
410 OvsdbHelper.createTunnelPort(nodeIid, node, abstractTunnelType, dataBroker);
411 verify(readWriteTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
412 verify(readWriteTransaction).submit();
416 public void createTunnelPortTestBridgeNull() {
417 InstanceIdentifier<Node> nodeIid = InstanceIdentifier.create(Node.class);
418 when(node.getAugmentation(OvsdbBridgeAugmentation.class)).thenReturn(null);
419 OvsdbHelper.createTunnelPort(nodeIid, node, abstractTunnelType, dataBroker);
420 verify(readWriteTransaction, never()).submit();
423 @SuppressWarnings("unchecked")
425 public void createTunnelPortTestManagerNodeNull() {
426 InstanceIdentifier<Node> nodeIid = InstanceIdentifier.create(Node.class);
427 when(readWriteTransaction.read(any(LogicalDatastoreType.class),
428 any(InstanceIdentifier.class))).thenReturn(nodeFuture);
429 when(nodeOptional.isPresent()).thenReturn(false);
430 OvsdbHelper.createTunnelPort(nodeIid, node, abstractTunnelType, dataBroker);
431 verify(readWriteTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
432 verify(readWriteTransaction, never()).submit();