Merge "Bug 8153: Enforce check-style rules for netconf - netconf-notification-api"
[netconf.git] / netconf / netconf-console / src / test / java / org / opendaylight / netconf / console / commands / NetconfCommandsImplCallsTest.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.netconf.console.commands;
10
11 import static junit.framework.TestCase.assertEquals;
12 import static junit.framework.TestCase.assertTrue;
13 import static org.mockito.Matchers.any;
14 import static org.mockito.Matchers.anyString;
15 import static org.mockito.Mockito.doNothing;
16 import static org.mockito.Mockito.doReturn;
17 import static org.mockito.Mockito.times;
18 import static org.mockito.Mockito.verify;
19 import static org.mockito.MockitoAnnotations.initMocks;
20
21 import com.google.common.collect.Lists;
22 import java.util.HashMap;
23 import java.util.List;
24 import java.util.Map;
25 import org.junit.Before;
26 import org.junit.Test;
27 import org.mockito.ArgumentCaptor;
28 import org.mockito.Mock;
29 import org.opendaylight.netconf.console.api.NetconfCommands;
30 import org.opendaylight.netconf.console.utils.NetconfConsoleConstants;
31
32 public class NetconfCommandsImplCallsTest {
33
34     @Mock
35     private NetconfCommands netconfCommands;
36
37     @Before
38     public void setUp() {
39         initMocks(this);
40     }
41
42     @Test
43     public void testConnectDeviceCommand() throws Exception {
44         NetconfConnectDeviceCommand netconfConnectDeviceCommand =
45                 new NetconfConnectDeviceCommand(netconfCommands);
46         netconfConnectDeviceCommand.doExecute();
47         verify(netconfCommands, times(0)).connectDevice(any(), any());
48
49         netconfConnectDeviceCommand = new NetconfConnectDeviceCommand(netconfCommands, "192.168.1.1", "7777");
50
51         netconfConnectDeviceCommand.doExecute();
52         doNothing().when(netconfCommands).connectDevice(any(), any());
53         verify(netconfCommands, times(1)).connectDevice(any(), any());
54     }
55
56     @Test
57     public void testDisconnectDeviceCommand() throws Exception {
58         NetconfDisconnectDeviceCommand netconfDisconnectDeviceCommand =
59                 new NetconfDisconnectDeviceCommand(netconfCommands);
60         netconfDisconnectDeviceCommand.doExecute();
61
62         verify(netconfCommands, times(0)).connectDevice(any(), any());
63
64         netconfDisconnectDeviceCommand = new NetconfDisconnectDeviceCommand(netconfCommands, "deviceId", null, null);
65
66         doReturn(true).when(netconfCommands).disconnectDevice(any());
67         netconfDisconnectDeviceCommand.doExecute();
68
69         verify(netconfCommands, times(1)).disconnectDevice(any());
70
71         netconfDisconnectDeviceCommand =
72                 new NetconfDisconnectDeviceCommand(netconfCommands, null, "192.168.1.1", "7777");
73
74         doReturn(true).when(netconfCommands).disconnectDevice(any(), any());
75         netconfDisconnectDeviceCommand.doExecute();
76
77         verify(netconfCommands, times(1)).disconnectDevice(any(), any());
78     }
79
80     @Test
81     public void testListDeviceCommand() throws Exception {
82         final NetconfListDevicesCommand netconfListDeviceCommand = new NetconfListDevicesCommand(netconfCommands);
83         doReturn(getDeviceHashMap()).when(netconfCommands).listDevices();
84
85         netconfListDeviceCommand.doExecute();
86
87         verify(netconfCommands, times(1)).listDevices();
88     }
89
90     @Test
91     public void testShowDeviceCommand() throws Exception {
92         NetconfShowDeviceCommand netconfShowDeviceCommand = new NetconfShowDeviceCommand(netconfCommands);
93         netconfShowDeviceCommand.doExecute();
94
95         verify(netconfCommands, times(0)).showDevice(any());
96
97         netconfShowDeviceCommand = new NetconfShowDeviceCommand(netconfCommands, "deviceId", null, null);
98
99         doReturn(getDeviceHashMap()).when(netconfCommands).showDevice(any());
100         netconfShowDeviceCommand.doExecute();
101
102         verify(netconfCommands, times(1)).showDevice(any());
103
104         netconfShowDeviceCommand = new NetconfShowDeviceCommand(netconfCommands, null, "192.168.1.1", "7777");
105
106         doReturn(getDeviceHashMap()).when(netconfCommands).showDevice(any(), any());
107         netconfShowDeviceCommand.doExecute();
108
109         verify(netconfCommands, times(1)).showDevice(any(), any());
110     }
111
112     @Test
113     @SuppressWarnings("unchecked")
114     public void testUpdateDeviceCommand() throws Exception {
115         final NetconfUpdateDeviceCommand netconfUpdateDeviceCommand =
116                 new NetconfUpdateDeviceCommand(netconfCommands, "192.168.1.1");
117
118         final ArgumentCaptor<HashMap> hashMapArgumentCaptor = ArgumentCaptor.forClass(HashMap.class);
119
120         doReturn("").when(netconfCommands).updateDevice(anyString(), anyString(), anyString(), any());
121
122         netconfUpdateDeviceCommand.doExecute();
123
124         verify(netconfCommands, times(1)).updateDevice(anyString(), anyString(), anyString(),
125                 hashMapArgumentCaptor.capture());
126
127         assertTrue(hashMapArgumentCaptor.getValue().containsKey(NetconfConsoleConstants.NETCONF_IP));
128         assertEquals("192.168.1.1", hashMapArgumentCaptor.getValue().get(NetconfConsoleConstants.NETCONF_IP));
129     }
130
131     private HashMap getDeviceHashMap() {
132         final HashMap<String, Map<String, List<String>>> devices = new HashMap<>();
133         final HashMap<String, List<String>> deviceMap = new HashMap<>();
134         deviceMap.put(NetconfConsoleConstants.NETCONF_IP, Lists.newArrayList("192.168.1.1"));
135         deviceMap.put(NetconfConsoleConstants.NETCONF_PORT, Lists.newArrayList("7777"));
136         deviceMap.put(NetconfConsoleConstants.STATUS, Lists.newArrayList("connecting"));
137         deviceMap.put(NetconfConsoleConstants.AVAILABLE_CAPABILITIES, Lists.newArrayList("cap1", "cap2", "cap3"));
138         devices.put("device", deviceMap);
139         return devices;
140     }
141
142 }