2 * ============LICENSE_START=======================================================
3 * ONAP : ccsdk feature sdnr wt
4 * ================================================================================
5 * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property.
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
21 package org.onap.ccsdk.features.sdnr.wt.devicemanager.test;
23 import static org.junit.Assert.assertTrue;
24 import java.util.Arrays;
25 import java.util.HashSet;
27 import org.junit.AfterClass;
28 import org.junit.BeforeClass;
29 import org.junit.Test;
30 import org.mockito.Mockito;
31 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
32 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.HtDatabaseMaintenance;
33 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.IEntityDataProvider;
34 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.IEsConfig;
35 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStampImpl;
36 import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.DeviceManagerImpl;
37 import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.util.InternalDateAndTime;
38 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
39 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService;
40 import org.onap.ccsdk.features.sdnr.wt.devicemanager.test.mock.RpcProviderServiceMock;
41 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfNodeConnectListener;
42 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfNodeStateListener;
43 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfNodeStateService;
44 import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
45 import org.opendaylight.mdsal.binding.api.DataBroker;
46 import org.opendaylight.mdsal.binding.api.MountPointService;
47 import org.opendaylight.mdsal.binding.api.NotificationPublishService;
48 import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
49 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.MaintenanceBuilder;
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.devicemanager.rev190109.ClearCurrentFaultByNodenameInputBuilder;
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.devicemanager.rev190109.DevicemanagerService;
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.devicemanager.rev190109.GetRequiredNetworkElementKeysInputBuilder;
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.devicemanager.rev190109.PushAttributeChangeNotificationInputBuilder;
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.devicemanager.rev190109.PushFaultNotificationInputBuilder;
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.devicemanager.rev190109.ShowRequiredNetworkElementInputBuilder;
59 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
60 import org.opendaylight.yangtools.concepts.ListenerRegistration;
61 import org.slf4j.Logger;
62 import org.slf4j.LoggerFactory;
64 @SuppressWarnings("deprecation")
65 public class TestDevicemanager extends Mockito {
67 private static final Logger log = LoggerFactory.getLogger(TestDevicemanager.class);
69 private static DeviceManagerImpl deviceManager = new DeviceManagerImpl();
70 private static DevicemanagerService apiService;
71 private static HtDatabaseMaintenance htDataBaseMaintenance = mock(HtDatabaseMaintenance.class);
74 public static void before() throws Exception {
76 DataBroker dataBroker = mock(DataBroker.class);
77 RpcProviderServiceMock rpcProviderRegistry = new RpcProviderServiceMock();
78 NotificationPublishService notificationPublishService = mock(NotificationPublishService.class);
79 MountPointService mountPointService = mock(MountPointService.class);
80 ClusterSingletonServiceProvider clusterSingletonService = mock(ClusterSingletonServiceProvider.class);
81 NetconfNodeStateService netconfNodeStateService = mock(NetconfNodeStateService.class);
83 @SuppressWarnings("unchecked")
84 ListenerRegistration<NetconfNodeConnectListener> lr1 = mock(ListenerRegistration.class);
85 //doNothing().when(lr1).close();
86 when(netconfNodeStateService.registerNetconfNodeConnectListener(mock(NetconfNodeConnectListener.class)))
89 @SuppressWarnings("unchecked")
90 ListenerRegistration<NetconfNodeStateListener> lr2 = mock(ListenerRegistration.class);
91 //doNothing().when(lr2).close();
92 when(netconfNodeStateService.registerNetconfNodeStateListener(mock(NetconfNodeStateListener.class)))
95 WebsocketManagerService websocketmanagerService = mock(WebsocketManagerService.class);
97 IEntityDataProvider iEntityDataProvider = mock(IEntityDataProvider.class);
99 DataProvider dataProvider = mock(DataProvider.class);
100 when(iEntityDataProvider.getDataProvider()).thenReturn(dataProvider);
102 when(iEntityDataProvider.getHtDatabaseMaintenance()).thenReturn(htDataBaseMaintenance);
105 IEsConfig esConfig = mock(IEsConfig.class);
106 when(iEntityDataProvider.getEsConfig()).thenReturn(esConfig);
109 deviceManager.setDataBroker(dataBroker);
110 deviceManager.setRpcProviderRegistry(rpcProviderRegistry);
111 deviceManager.setNotificationPublishService(notificationPublishService);
112 deviceManager.setMountPointService(mountPointService);
113 deviceManager.setClusterSingletonService(clusterSingletonService);
114 deviceManager.setNetconfNodeStateService(netconfNodeStateService);
115 deviceManager.setWebsocketmanagerService(websocketmanagerService);
116 deviceManager.setEntityDataProvider(iEntityDataProvider);
118 deviceManager.init();
120 apiService = rpcProviderRegistry.getDeviceManagerApiService();
126 public void testInit() {
127 assertTrue(deviceManager.isDevicemanagerInitializationOk());
131 public void testMapping() {
136 public void testChangeNotification() {
137 NotificationService n = deviceManager.getNotificationService();
139 n.creationNotification(new NodeId("NodeTest1"), 1, InternalDateAndTime.getTestpatternDateAndTime(), "ObjTest1");
141 n.changeNotification(new NodeId("NodeTest1"), 2, InternalDateAndTime.getTestpatternDateAndTime(), "ObjTest1",
142 "AtrributeTest1", "NewTest1");
144 n.deletionNotification(new NodeId("NodeTest1"), 3, InternalDateAndTime.getTestpatternDateAndTime(), "ObjTest1");
149 public void testFaultNotification() {
150 log.info("testFaultNotification");
152 MaintenanceBuilder mb = new MaintenanceBuilder();
153 when(htDataBaseMaintenance.getMaintenance("")).thenReturn(mb.build());
155 FaultService n = deviceManager.getFaultService();
156 FaultlogBuilder faultLogEntityBuilder = new FaultlogBuilder();
157 n.faultNotification(faultLogEntityBuilder.setNodeId("node1").setSeverity(SeverityType.Critical)
158 .setTimestamp(NetconfTimeStampImpl.getTestpatternDateAndTime()).build());
163 public void testGet() {
165 GetRequiredNetworkElementKeysInputBuilder inputBuilder = new GetRequiredNetworkElementKeysInputBuilder();
166 apiService.getRequiredNetworkElementKeys(inputBuilder.build());
171 public void testShow() {
172 log.info("testShow");
173 ShowRequiredNetworkElementInputBuilder inputBuilder = new ShowRequiredNetworkElementInputBuilder();
174 inputBuilder.setMountpointName("test");
175 apiService.showRequiredNetworkElement(inputBuilder.build());
180 public void testResync() {
181 log.info("testResync");
183 ClearCurrentFaultByNodenameInputBuilder inputBuilder = new ClearCurrentFaultByNodenameInputBuilder();
184 inputBuilder.setNodenames(new HashSet<>(Arrays.asList("test1", "test2")));
185 apiService.clearCurrentFaultByNodename(inputBuilder.build());
190 public void testPushFault() {
191 log.info("testPushFault");
193 PushFaultNotificationInputBuilder inputBuilder = new PushFaultNotificationInputBuilder();
194 inputBuilder.setNodeId("NodeTest23");
195 inputBuilder.setTimestamp(new DateAndTime("2020-01-01T01:02:03.4Z"));
196 apiService.pushFaultNotification(inputBuilder.build());
201 public void testPushChange() {
202 log.info("testPushChange");
204 PushAttributeChangeNotificationInputBuilder inputBuilder = new PushAttributeChangeNotificationInputBuilder();
205 inputBuilder.setNodeId("NodeTest24");
206 apiService.pushAttributeChangeNotification(inputBuilder.build());
212 public static void after() {
213 deviceManager.close();