Refactoring of cisco-xr-driver and impl modules.
[unimgr.git] / impl / src / test / java / org / opendaylight / unimgr / utils / CapabilitiesServiceTest.java
1 /*
2  * Copyright (c) 2016 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
9 package org.opendaylight.unimgr.utils;
10
11 import com.google.common.base.Optional;
12 import org.junit.Test;
13 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
14 import org.opendaylight.controller.md.sal.binding.test.AbstractDataBrokerTest;
15 import org.opendaylight.unimgr.utils.CapabilitiesService;
16 import org.opendaylight.yang.gen.v1.urn.onf.core.network.module.rev160630.g_forwardingconstruct.FcPort;
17 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
18
19 import static org.junit.Assert.*;
20 import static org.opendaylight.unimgr.utils.NodeTestUtils.*;
21 import static org.opendaylight.unimgr.utils.CapabilitiesService.Capability.Mode.AND;
22 import static org.opendaylight.unimgr.utils.CapabilitiesService.NodeContext.NodeCapability.*;
23
24 public class CapabilitiesServiceTest extends AbstractDataBrokerTest {
25
26     @Test
27     public void testNodeByPortPositive() {
28         //given
29         Optional<Node> mockedNodeOptional = mockNode();
30         DataBroker mockedDataBrocker = mockDataBroker(mockedNodeOptional);
31         CapabilitiesService capabilitiesService = new CapabilitiesService(mockedDataBrocker);
32         FcPort mockedFcPort = mockFcPort();
33
34         //when
35         CapabilitiesService.NodeContext context = capabilitiesService.nodeByPort(mockedFcPort);
36
37         //then
38         assertNotNull(context);
39         assertTrue(context.getNode().isPresent());
40         assertEquals(mockedNodeOptional.get(), context.getNode().get());
41     }
42
43     @Test
44     public void testNodeByPortNegative() {
45         //given
46         DataBroker mockedDataBrocker = mockDataBroker(Optional.absent());
47         CapabilitiesService capabilitiesService = new CapabilitiesService(mockedDataBrocker);
48         FcPort mockedFcPort = mockFcPort();
49
50         //when
51         CapabilitiesService.NodeContext context = capabilitiesService.nodeByPort(mockedFcPort);
52
53         //then
54         assertNotNull(context);
55         assertFalse(context.getNode().isPresent());
56     }
57
58
59     @Test
60     public void testNode() {
61         //given
62         Optional<Node> mockedNodeOptional = mockNode();
63         DataBroker mockedDataBrocker = mockDataBroker(Optional.absent());
64         CapabilitiesService capabilitiesService = new CapabilitiesService(mockedDataBrocker);
65
66         //when
67         CapabilitiesService.NodeContext context = capabilitiesService.node(mockedNodeOptional.get());
68
69         //then
70         assertNotNull(context);
71         assertTrue(context.getNode().isPresent());
72         assertEquals(mockedNodeOptional.get(), context.getNode().get());
73     }
74
75     @Test
76     public void testNodeIsSupportingSingleCapabilityPositive() {
77         //given
78         Optional<Node> mockedNodeOptional = mockNetconfNode(false);
79         DataBroker mockedDataBrocker = mockDataBroker(Optional.absent());
80
81         //when
82         boolean result = new CapabilitiesService(mockedDataBrocker)
83                 .node(mockedNodeOptional.get())
84                 .isSupporting(NETCONF);
85
86         //then
87         assertTrue(result);
88     }
89
90     @Test
91     public void testNodeIsSupportingSingleCapabilityNegative() {
92         //given
93         Optional<Node> mockedNodeOptional = mockNode();
94         DataBroker mockedDataBrocker = mockDataBroker(Optional.absent());
95
96         //when
97         boolean result = new CapabilitiesService(mockedDataBrocker)
98                 .node(mockedNodeOptional.get())
99                 .isSupporting(NETCONF);
100
101         //then
102         assertFalse(result);
103     }
104
105     @Test
106     public void testNodeIsSupportingMultipleCapabilitiesPositive() {
107         //given
108         Optional<Node> mockedNodeOptional = mockNetconfNode(true);
109         DataBroker mockedDataBrocker = mockDataBroker(Optional.absent());
110
111         //when
112         boolean result = new CapabilitiesService(mockedDataBrocker)
113                 .node(mockedNodeOptional.get())
114                 .isSupporting(AND, NETCONF, NETCONF_CISCO_IOX_L2VPN, NETCONF_CISCO_IOX_IFMGR);
115
116         //then
117         assertTrue(result);
118     }
119
120     @Test
121     public void testNodeIsSupportingMultipleCapabilitiesNegative() {
122         //given
123         Optional<Node> mockedNodeOptional = mockNode();
124         DataBroker mockedDataBrocker = mockDataBroker(Optional.absent());
125
126         //when
127         boolean result = new CapabilitiesService(mockedDataBrocker)
128                 .node(mockedNodeOptional.get())
129                 .isSupporting(AND, NETCONF, NETCONF_CISCO_IOX_L2VPN, NETCONF_CISCO_IOX_IFMGR);
130
131         //then
132         assertFalse(result);
133     }
134 }