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
10 * http://www.apache.org/licenses/LICENSE-2.0
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
16 * ============LICENSE_END==========================================================================
18 package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding;
20 import static org.mockito.Mockito.verify;
21 import static org.mockito.Mockito.when;
22 import com.google.common.io.Files;
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.oran.impl.binding.ORanFaultNotificationListener;
35 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
36 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
37 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
38 import org.onap.ccsdk.features.sdnr.wt.devicemanager.vescollectorconnector.impl.VESCollectorServiceImpl;
39 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
40 import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
41 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
46 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
47 import org.slf4j.Logger;
48 import org.slf4j.LoggerFactory;
50 @RunWith(MockitoJUnitRunner.class)
51 public class TestORanFaultNotificationListener {
53 private static final Logger LOG = LoggerFactory.getLogger(TestORanFaultNotificationListener.class);
54 private static final String TESTFILENAME = "configFile.txt";
57 private static final String TESTCONFIG_CONTENT = "[VESCollector]\n"
58 + "VES_COLLECTOR_ENABLED=true\n"
59 + "VES_COLLECTOR_TLS_ENABLED=true\n"
60 + "VES_COLLECTOR_TRUST_ALL_CERTS=true\n"
61 + "VES_COLLECTOR_USERNAME=sample1\n"
62 + "VES_COLLECTOR_PASSWORD=sample1\n"
63 + "VES_COLLECTOR_IP=[2001:db8:1:1::1]\n"
64 + "VES_COLLECTOR_PORT=8443\n"
65 + "VES_COLLECTOR_VERSION=v7\n"
66 + "REPORTING_ENTITY_NAME=ONAP SDN-R\n"
67 + "EVENTLOG_MSG_DETAIL=SHORT\n"
71 @Mock NetconfBindingAccessor bindingAccessor;
72 @Mock DataProvider dataProvider;
73 @Mock FaultService faultService;
74 @Mock DeviceManagerServiceProvider serviceProvider;
75 @Mock WebsocketManagerService websocketManagerService;
76 @Mock DataProvider databaseService;
77 VESCollectorService vesCollectorService;
81 public void afterAndBefore() {
82 File f = new File(TESTFILENAME);
84 LOG.info("Remove {}", f.getAbsolutePath());
90 public void test() throws IOException {
91 Files.asCharSink(new File(TESTFILENAME), StandardCharsets.UTF_8).write(TESTCONFIG_CONTENT);
93 new VESCollectorServiceImpl(new ConfigurationFileRepresentation(TESTFILENAME));
94 when(bindingAccessor.getNodeId()).thenReturn(new NodeId("nSky"));
95 ORanFaultNotificationListener faultListener = new ORanFaultNotificationListener(bindingAccessor,
96 vesCollectorService, faultService, websocketManagerService, databaseService);
97 faultListener.onAlarmNotif(new TestAlarmNotif());
99 verify(faultService).faultNotification(getFaultLog());
102 private FaultlogEntity getFaultLog() {
103 FaultlogBuilder faultAlarm = new FaultlogBuilder();
104 faultAlarm.setNodeId("nSky");
105 faultAlarm.setObjectId("ORAN-RU-FH");
106 faultAlarm.setProblem("CPRI Port Down");
107 faultAlarm.setSeverity(SeverityType.NonAlarmed);
108 faultAlarm.setCounter(1);
109 faultAlarm.setId("123");
110 faultAlarm.setSourceType(SourceType.Netconf);
111 faultAlarm.setTimestamp(new DateAndTime("2021-03-23T18:19:42.326144Z"));
112 return faultAlarm.build();