X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=engine-d%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fholmes%2Fdsa%2Fdmaappolling%2FSubscriberTest.java;h=f88ddfbf82a7fa11e878a52d92078cb8cfc11192;hb=a2d41239cd468bd2894336353b31007dfe99bf81;hp=4b64e6ac8028be3af49285da4ac330e737b31a38;hpb=1d8c0955bc266f08559385a58b2f40a9457cd5d9;p=holmes%2Fengine-management.git diff --git a/engine-d/src/test/java/org/onap/holmes/dsa/dmaappolling/SubscriberTest.java b/engine-d/src/test/java/org/onap/holmes/dsa/dmaappolling/SubscriberTest.java index 4b64e6a..f88ddfb 100644 --- a/engine-d/src/test/java/org/onap/holmes/dsa/dmaappolling/SubscriberTest.java +++ b/engine-d/src/test/java/org/onap/holmes/dsa/dmaappolling/SubscriberTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2017 ZTE Corporation. + * Copyright 2017-2021 ZTE Corporation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,50 +15,49 @@ */ package org.onap.holmes.dsa.dmaappolling; -import org.apache.http.HttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.impl.client.CloseableHttpClient; import org.glassfish.hk2.api.ServiceLocator; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.ExpectedException; import org.junit.runner.RunWith; -import org.mockito.Matchers; import org.onap.holmes.common.api.stat.AlarmAdditionalField; import org.onap.holmes.common.api.stat.VesAlarm; import org.onap.holmes.common.dropwizard.ioc.utils.ServiceLocatorHolder; -import org.onap.holmes.common.utils.GsonUtil; -import org.onap.holmes.common.utils.HttpsUtils; -import org.onap.holmes.dsa.dmaappolling.DMaaPResponseUtil; -import org.onap.holmes.dsa.dmaappolling.Subscriber; +import org.onap.holmes.common.exception.CorrelationException; +import org.onap.holmes.common.utils.JerseyClient; import org.powermock.api.easymock.PowerMock; -import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; +import static org.easymock.EasyMock.*; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.assertThat; -@PrepareForTest({ServiceLocatorHolder.class, ServiceLocator.class, HttpsUtils.class}) @RunWith(PowerMockRunner.class) +@PrepareForTest({ServiceLocatorHolder.class, JerseyClient.class}) +@PowerMockIgnore("javax.net.ssl.*") public class SubscriberTest { private DMaaPResponseUtil util = new DMaaPResponseUtil(); + @Rule + public ExpectedException thrown = ExpectedException.none(); + @Before public void init() { - PowerMockito.mockStatic(ServiceLocatorHolder.class); - ServiceLocator serviceLocator = PowerMockito.mock(ServiceLocator.class); - PowerMockito.when(ServiceLocatorHolder.getLocator()).thenReturn(serviceLocator); - PowerMockito.when(serviceLocator.getService(DMaaPResponseUtil.class)).thenReturn(util); + PowerMock.mockStatic(ServiceLocatorHolder.class); + ServiceLocator serviceLocator = PowerMock.createMock(ServiceLocator.class); + expect(ServiceLocatorHolder.getLocator()).andReturn(serviceLocator).anyTimes(); + expect(serviceLocator.getService(DMaaPResponseUtil.class)).andReturn(util).anyTimes(); } @Test - public void subscribe() throws Exception { - PowerMock.resetAll(); + public void subscribe_normal() throws Exception { VesAlarm vesAlarm = new VesAlarm(); vesAlarm.setDomain("ONAP"); vesAlarm.setEventId("123"); @@ -118,26 +117,113 @@ public class SubscriberTest { "\"specificProblem\": \"specificProblem\"," + "\"vfStatus\": \"vfStatus\"" + "}}}"; + + List responseList = new ArrayList<>(); + responseList.add(eventString); + + JerseyClient mockedClient = PowerMock.createMock(JerseyClient.class); + PowerMock.expectNew(JerseyClient.class).andReturn(mockedClient); + expect(mockedClient.path(anyString())).andReturn(mockedClient).times(2); + expect(mockedClient.queryParam(anyString(), anyInt())).andReturn(mockedClient); + expect(mockedClient.get(anyString(), anyObject())).andReturn(responseList); + + PowerMock.replayAll(); + Subscriber subscriber = new Subscriber(); subscriber.setUrl("https://www.onap.org"); subscriber.setConsumerGroup("group"); subscriber.setConsumer("consumer"); + List vesAlarms = subscriber.subscribe(); + + PowerMock.verifyAll(); + + assertThat(vesAlarm.getEventName(), equalTo(vesAlarms.get(0).getEventName())); + } + + @Test + public void subscribe_retrieve_data_exception() throws Exception { + thrown.expect(CorrelationException.class); + thrown.expectMessage("Failed to get data from DMaaP."); + + VesAlarm vesAlarm = new VesAlarm(); + vesAlarm.setDomain("ONAP"); + vesAlarm.setEventId("123"); + vesAlarm.setEventName("Event-123"); + vesAlarm.setEventType("EventType"); + vesAlarm.setLastEpochMicrosec(1000L); + vesAlarm.setNfcNamingCode("123"); + vesAlarm.setNfNamingCode("123"); + vesAlarm.setPriority("high"); + vesAlarm.setReportingEntityId("ID-123"); + vesAlarm.setReportingEntityName("Name-123"); + vesAlarm.setSequence(1); + vesAlarm.setSourceId("Source-123"); + vesAlarm.setSourceName("Source-123"); + vesAlarm.setStartEpochMicrosec(500L); + vesAlarm.setVersion(1L); + List alarmAdditionalFields = new ArrayList<>(); + AlarmAdditionalField field = new AlarmAdditionalField(); + field.setName("addInfo"); + field.setValue("addInfo"); + alarmAdditionalFields.add(field); + vesAlarm.setAlarmAdditionalInformation(alarmAdditionalFields); + vesAlarm.setAlarmCondition("alarmCondition"); + vesAlarm.setAlarmInterfaceA("alarmInterfaceA"); + vesAlarm.setEventCategory("eventCategory"); + vesAlarm.setEventSeverity("eventSeverity"); + vesAlarm.setEventSourceType("eventSourceType"); + vesAlarm.setFaultFieldsVersion(1L); + vesAlarm.setSpecificProblem("specificProblem"); + vesAlarm.setVfStatus("vfStatus"); + + String eventString = "{\"event\": {\"commonEventHeader\": {" + + "\"domain\": \"ONAP\"," + + "\"eventId\": \"123\"," + + "\"eventName\": \"Event-123\"," + + "\"eventType\": \"EventType\"," + + "\"lastEpochMicrosec\": 1000," + + "\"nfcNamingCode\": \"123\"," + + "\"nfNamingCode\": \"123\"," + + "\"priority\": \"high\"," + + "\"reportingEntityId\": \"ID-123\"," + + "\"reportingEntityName\": \"Name-123\"," + + "\"sequence\": 1," + + "\"sourceId\": \"Source-123\"," + + "\"sourceName\": \"Source-123\"," + + "\"startEpochMicrosec\": 500," + + "\"version\": 1" + + "}," + + " \"faultFields\" : {" + + "\"alarmAdditionalInformation\": [{\"name\":\"addInfo\", \"value\":\"addInfo\"}]," + + "\"alarmCondition\": \"alarmCondition\"," + + "\"alarmInterfaceA\": \"alarmInterfaceA\"," + + "\"eventCategory\": \"eventCategory\"," + + "\"eventSeverity\": \"eventSeverity\"," + + "\"eventSourceType\": \"eventSourceType\"," + + "\"faultFieldsVersion\": 1," + + "\"specificProblem\": \"specificProblem\"," + + "\"vfStatus\": \"vfStatus\"" + + "}}}"; + List responseList = new ArrayList<>(); responseList.add(eventString); - String responseJson = GsonUtil.beanToJson(responseList); - PowerMockito.mockStatic(HttpsUtils.class); - HttpResponse httpResponse = PowerMockito.mock(HttpResponse.class); - PowerMockito.when(HttpsUtils.get(Matchers.any(HttpGet.class), - Matchers.any(HashMap.class), Matchers.any(CloseableHttpClient.class))).thenReturn(httpResponse); - PowerMockito.when(HttpsUtils.extractResponseEntity(httpResponse)).thenReturn(responseJson); + JerseyClient mockedClient = PowerMock.createMock(JerseyClient.class); + PowerMock.expectNew(JerseyClient.class).andReturn(mockedClient); + expect(mockedClient.path(anyString())).andReturn(mockedClient).times(2); + expect(mockedClient.queryParam(anyString(), anyInt())).andReturn(mockedClient); + expect(mockedClient.get(anyString(), anyObject())).andThrow(new RuntimeException()); PowerMock.replayAll(); - List vesAlarms = subscriber.subscribe(); - PowerMock.verifyAll(); + Subscriber subscriber = new Subscriber(); + subscriber.setUrl("https://www.onap.org"); + subscriber.setConsumerGroup("group"); + subscriber.setConsumer("consumer"); - assertThat(vesAlarm.getEventName(), equalTo(vesAlarms.get(0).getEventName())); + subscriber.subscribe(); + + PowerMock.verifyAll(); } @Test