Connectivity service synchronous write.
[unimgr.git] / cisco-xr-driver / src / test / java / org / opendaylight / unimgr / mef / nrp / cisco / xr / common / util / XrCapabilitiesServiceTest.java
1 /*
2  * Copyright (c) 2018 Cisco Systems Inc and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.unimgr.mef.nrp.cisco.xr.common.util;
9
10 import com.google.common.base.Optional;
11 import org.junit.Test;
12 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
13 import org.opendaylight.controller.md.sal.binding.test.AbstractConcurrentDataBrokerTest;
14 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
15
16 import static org.junit.Assert.*;
17 import static org.opendaylight.unimgr.mef.nrp.cisco.xr.common.util.XrCapabilitiesService.NodeCapability.NETCONF;
18 import static org.opendaylight.unimgr.mef.nrp.cisco.xr.common.util.XrCapabilitiesService.NodeCapability.NETCONF_CISCO_IOX_IFMGR;
19 import static org.opendaylight.unimgr.mef.nrp.cisco.xr.common.util.XrCapabilitiesService.NodeCapability.NETCONF_CISCO_IOX_L2VPN;
20 import static org.opendaylight.unimgr.utils.CapabilitiesService.Capability.Mode.AND;
21 import static org.opendaylight.unimgr.mef.nrp.cisco.xr.common.util.NodeTestUtils.mockDataBroker;
22 import static org.opendaylight.unimgr.mef.nrp.cisco.xr.common.util.NodeTestUtils.mockNetconfNode;
23 import static org.opendaylight.unimgr.mef.nrp.cisco.xr.common.util.NodeTestUtils.mockNode;
24
25 /**
26  * @author bartosz.michalik@amartus.com
27  */
28 public class XrCapabilitiesServiceTest extends AbstractConcurrentDataBrokerTest {
29
30     @Test
31     public void testNode() {
32         //given
33         Optional<Node> mockedNodeOptional = mockNode();
34         DataBroker mockedDataBrocker = mockDataBroker(Optional.absent());
35         XrCapabilitiesService capabilitiesService = new XrCapabilitiesService(mockedDataBrocker);
36
37         //when
38         XrCapabilitiesService.NodeContext context = capabilitiesService.node(mockedNodeOptional.get());
39
40         //then
41         assertNotNull(context);
42         assertTrue(context.getNode().isPresent());
43         assertEquals(mockedNodeOptional.get(), context.getNode().get());
44     }
45
46     @Test
47     public void testNodeIsSupportingMultipleCapabilitiesNegative() {
48         //given
49         Optional<Node> mockedNodeOptional = mockNode();
50         DataBroker mockedDataBrocker = mockDataBroker(Optional.absent());
51
52         //when
53         boolean result = new XrCapabilitiesService(mockedDataBrocker)
54                 .node(mockedNodeOptional.get())
55                 .isSupporting(AND, NETCONF, NETCONF_CISCO_IOX_L2VPN, NETCONF_CISCO_IOX_IFMGR);
56
57         //then
58         assertFalse(result);
59     }
60
61     @Test
62     public void testNodeIsSupportingMultipleCapabilitiesPositive() {
63         //given
64         Optional<Node> mockedNodeOptional = mockNetconfNode(true);
65         DataBroker mockedDataBrocker = mockDataBroker(Optional.absent());
66
67         //when
68         boolean result = new XrCapabilitiesService(mockedDataBrocker)
69                 .node(mockedNodeOptional.get())
70                 .isSupporting(AND, NETCONF, NETCONF_CISCO_IOX_L2VPN, NETCONF_CISCO_IOX_IFMGR);
71
72         //then
73         assertTrue(result);
74     }
75
76     @Test
77     public void testNodeIsSupportingSingleCapabilityNegative() {
78         //given
79         Optional<Node> mockedNodeOptional = mockNode();
80         DataBroker mockedDataBrocker = mockDataBroker(Optional.absent());
81
82         //when
83         boolean result = new XrCapabilitiesService(mockedDataBrocker)
84                 .node(mockedNodeOptional.get())
85                 .isSupporting(NETCONF);
86
87         //then
88         assertFalse(result);
89     }
90
91     @Test
92     public void testNodeIsSupportingSingleCapabilityPositive() {
93         //given
94         Optional<Node> mockedNodeOptional = mockNetconfNode(false);
95         DataBroker mockedDataBrocker = mockDataBroker(Optional.absent());
96
97         //when
98         boolean result = new XrCapabilitiesService(mockedDataBrocker)
99                 .node(mockedNodeOptional.get())
100                 .isSupporting(NETCONF);
101
102         //then
103         assertTrue(result);
104     }
105
106 }