af2515c9ae4d1b93cbf40ada0b11d5507bfb3b3d
[ccsdk/features.git] / sdnr / wt / devicemanager-o-ran-sc / o-ran / ru-fh / provider / src / test / java / org / onap / ccsdk / features / sdnr / wt / devicemanager / oran / impl / TestORanFaultNotificationListener.java
1 /*
2  * ============LICENSE_START========================================================================
3  * ONAP : ccsdk feature sdnr wt
4  * =================================================================================================
5  * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
6  * =================================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
8  * in compliance with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software distributed under the License
13  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
14  * or implied. See the License for the specific language governing permissions and limitations under
15  * the License.
16  * ============LICENSE_END==========================================================================
17  */
18 package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
19
20 import static org.mockito.Mockito.verify;
21 import static org.mockito.Mockito.when;
22 import com.google.common.io.Files;
23 import java.io.File;
24 import java.io.IOException;
25 import java.nio.charset.StandardCharsets;
26 import org.junit.After;
27 import org.junit.Before;
28 import org.junit.Test;
29 import org.junit.runner.RunWith;
30 import org.mockito.Mock;
31 import org.mockito.junit.MockitoJUnitRunner;
32 import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation;
33 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
34 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
35 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
36 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
37 import org.onap.ccsdk.features.sdnr.wt.devicemanager.vescollectorconnector.impl.VESCollectorServiceImpl;
38 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
39 import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
40 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
45 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
46 import org.slf4j.Logger;
47 import org.slf4j.LoggerFactory;
48
49 @RunWith(MockitoJUnitRunner.class)
50 public class TestORanFaultNotificationListener {
51
52     private static final Logger LOG = LoggerFactory.getLogger(TestORanFaultNotificationListener.class);
53     private static final String TESTFILENAME = "configFile.txt";
54
55     // @formatter:off
56     private static final String TESTCONFIG_CONTENT = "[VESCollector]\n"
57             + "VES_COLLECTOR_ENABLED=true\n"
58             + "VES_COLLECTOR_TLS_ENABLED=true\n"
59             + "VES_COLLECTOR_TRUST_ALL_CERTS=true\n"
60             + "VES_COLLECTOR_USERNAME=sample1\n"
61             + "VES_COLLECTOR_PASSWORD=sample1\n"
62             + "VES_COLLECTOR_IP=[2001:db8:1:1::1]\n"
63             + "VES_COLLECTOR_PORT=8443\n"
64             + "VES_COLLECTOR_VERSION=v7\n"
65             + "REPORTING_ENTITY_NAME=ONAP SDN-R\n"
66             + "EVENTLOG_MSG_DETAIL=SHORT\n"
67             + "";
68     // @formatter:on
69
70     @Mock NetconfBindingAccessor bindingAccessor;
71     @Mock DataProvider dataProvider;
72     @Mock FaultService faultService;
73     @Mock DeviceManagerServiceProvider serviceProvider;
74     @Mock WebsocketManagerService websocketManagerService;
75     @Mock DataProvider databaseService;
76     VESCollectorService vesCollectorService;
77
78     @After
79     @Before
80     public void afterAndBefore() {
81         File f = new File(TESTFILENAME);
82         if (f.exists()) {
83             LOG.info("Remove {}", f.getAbsolutePath());
84             f.delete();
85         }
86     }
87
88     @Test
89     public void test() throws IOException {
90         Files.asCharSink(new File(TESTFILENAME), StandardCharsets.UTF_8).write(TESTCONFIG_CONTENT);
91         vesCollectorService =
92                 new VESCollectorServiceImpl(new ConfigurationFileRepresentation(TESTFILENAME));
93         when(bindingAccessor.getNodeId()).thenReturn(new NodeId("nSky"));
94         ORanFaultNotificationListener faultListener = new ORanFaultNotificationListener(bindingAccessor,
95                 vesCollectorService, faultService, websocketManagerService, databaseService);
96         faultListener.onAlarmNotif(new TestAlarmNotif());
97
98         verify(faultService).faultNotification(getFaultLog());
99     }
100
101     private FaultlogEntity getFaultLog() {
102         FaultlogBuilder faultAlarm = new FaultlogBuilder();
103         faultAlarm.setNodeId("nSky");
104         faultAlarm.setObjectId("ORAN-RU-FH");
105         faultAlarm.setProblem("CPRI Port Down");
106         faultAlarm.setSeverity(SeverityType.NonAlarmed);
107         faultAlarm.setCounter(1);
108         faultAlarm.setId("123");
109         faultAlarm.setSourceType(SourceType.Netconf);
110         faultAlarm.setTimestamp(new DateAndTime("2021-03-23T18:19:42.326144Z"));
111         return faultAlarm.build();
112     }
113
114 }