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;
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.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;
49 @RunWith(MockitoJUnitRunner.class)
50 public class TestORanFaultNotificationListener {
52 private static final Logger LOG = LoggerFactory.getLogger(TestORanFaultNotificationListener.class);
53 private static final String TESTFILENAME = "configFile.txt";
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"
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;
80 public void afterAndBefore() {
81 File f = new File(TESTFILENAME);
83 LOG.info("Remove {}", f.getAbsolutePath());
89 public void test() throws IOException {
90 Files.asCharSink(new File(TESTFILENAME), StandardCharsets.UTF_8).write(TESTCONFIG_CONTENT);
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());
98 verify(faultService).faultNotification(getFaultLog());
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();