summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortangpeng <tang.peng5@zte.com.cn>2019-02-22 17:47:23 +0800
committertangpeng <tang.peng5@zte.com.cn>2019-02-22 17:47:23 +0800
commit81edfdbaffd9c450f37d2418bb444473ee3bbe77 (patch)
tree5c2d5889fc79428d6ab7fa793d1986c7e963ae0b
parent6a3873859d6efd8199d4812e3fb4ae2fe8a47e41 (diff)
Added some codes for UT
Change-Id: Iaf47ab320511538618c031913dc349679b4ed6b8 Issue-ID: HOLMES-203 Signed-off-by: tangpeng <tang.peng5@zte.com.cn>
-rw-r--r--holmes-actions/src/main/java/org/onap/holmes/common/dcae/entity/DcaeConfigurations.java1
-rw-r--r--holmes-actions/src/main/java/org/onap/holmes/common/dmaap/DmaapService.java16
-rw-r--r--holmes-actions/src/test/java/org/onap/holmes/common/dcae/utils/DcaeConfigurationParserTest.java20
-rw-r--r--holmes-actions/src/test/java/org/onap/holmes/common/dmaap/DmaapServiceTest.java100
4 files changed, 120 insertions, 17 deletions
diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/dcae/entity/DcaeConfigurations.java b/holmes-actions/src/main/java/org/onap/holmes/common/dcae/entity/DcaeConfigurations.java
index a8045ec..4b90dd7 100644
--- a/holmes-actions/src/main/java/org/onap/holmes/common/dcae/entity/DcaeConfigurations.java
+++ b/holmes-actions/src/main/java/org/onap/holmes/common/dcae/entity/DcaeConfigurations.java
@@ -21,7 +21,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import lombok.NoArgsConstructor;
public class DcaeConfigurations extends HashMap<String, Object>{
diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/dmaap/DmaapService.java b/holmes-actions/src/main/java/org/onap/holmes/common/dmaap/DmaapService.java
index e3f6e58..ba52262 100644
--- a/holmes-actions/src/main/java/org/onap/holmes/common/dmaap/DmaapService.java
+++ b/holmes-actions/src/main/java/org/onap/holmes/common/dmaap/DmaapService.java
@@ -70,19 +70,9 @@ public class DmaapService {
if (rootAlarm.getAlarmIsCleared() == PolicyMassgeConstant.POLICY_MESSAGE_ONSET) {
enrichVnfInfo(vmEntity, childAlarm, policyMsg);
policyMsg.setClosedLoopEventStatus(EVENT_STATUS.ONSET);
- try {
- policyMsg.getAai().put("vserver.in-maint", vmEntity.getInMaint());
- } catch (Exception e) {
- log.error("Failed to parse the field \"in-maint\". A boolean string (\"true\"/\"false\")"
- + " is expected but the actual value is " + vmEntity.getInMaint() + ".", e);
- }
- try {
- policyMsg.getAai().put("vserver.is-closed-loop-disabled",
+ policyMsg.getAai().put("vserver.in-maint", vmEntity.getInMaint());
+ policyMsg.getAai().put("vserver.is-closed-loop-disabled",
vmEntity.getClosedLoopDisable());
- } catch (Exception e) {
- log.error("Failed to parse the field \"is-closed-loop-disabled\". A boolean string (\"true\"/\"false\")"
- + " is expected but the actual value is " + vmEntity.getClosedLoopDisable() + ".", e);
- }
policyMsg.getAai().put("vserver.prov-status", vmEntity.getProvStatus());
policyMsg.getAai().put("vserver.resource-version", vmEntity.getResourceVersion());
} else {
@@ -196,7 +186,7 @@ public class DmaapService {
break;
}
}
- log.info("Clear alarm, requestId deleted successful");
+ log.info("An alarm is cleared and the corresponding requestId is deleted successfully");
}
}
}
diff --git a/holmes-actions/src/test/java/org/onap/holmes/common/dcae/utils/DcaeConfigurationParserTest.java b/holmes-actions/src/test/java/org/onap/holmes/common/dcae/utils/DcaeConfigurationParserTest.java
index 827220c..c441942 100644
--- a/holmes-actions/src/test/java/org/onap/holmes/common/dcae/utils/DcaeConfigurationParserTest.java
+++ b/holmes-actions/src/test/java/org/onap/holmes/common/dcae/utils/DcaeConfigurationParserTest.java
@@ -27,12 +27,19 @@ import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
+
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.ExpectedException;
import org.onap.holmes.common.dcae.entity.DcaeConfigurations;
import org.onap.holmes.common.dcae.entity.SecurityInfo;
+import org.onap.holmes.common.exception.CorrelationException;
public class DcaeConfigurationParserTest {
+ @Rule
+ public ExpectedException thrown = ExpectedException.none();
+
@Test
public void parse() throws Exception {
DcaeConfigurations obj = DcaeConfigurationParser.parse(readConfigurationsFromFile("dcae.config.json"));
@@ -43,6 +50,19 @@ public class DcaeConfigurationParserTest {
assertThat(((SecurityInfo) obj.getPubSecInfo("sec_measurement")).getDmaapInfo().getLocation(), equalTo("mtl5"));
}
+ @Test
+ public void parse_with_empty_contents_excption() throws CorrelationException {
+ thrown.expect(CorrelationException.class);
+ thrown.expectMessage("Can not resolve configurations from DCAE. The configuration string is empty.");
+ DcaeConfigurationParser.parse("");
+ }
+
+ @Test
+ public void parse_with_illegal_dcae_response_excption() throws CorrelationException {
+ thrown.expect(CorrelationException.class);
+ DcaeConfigurationParser.parse("This is an ordinary string.");
+ }
+
private String readConfigurationsFromFile(String fileName) throws URISyntaxException, FileNotFoundException {
URL url = DcaeConfigurationParserTest.class.getClassLoader().getResource(fileName);
File configFile = new File(new URI(url.toString()).getPath());
diff --git a/holmes-actions/src/test/java/org/onap/holmes/common/dmaap/DmaapServiceTest.java b/holmes-actions/src/test/java/org/onap/holmes/common/dmaap/DmaapServiceTest.java
index b47a16f..6494cd8 100644
--- a/holmes-actions/src/test/java/org/onap/holmes/common/dmaap/DmaapServiceTest.java
+++ b/holmes-actions/src/test/java/org/onap/holmes/common/dmaap/DmaapServiceTest.java
@@ -18,11 +18,18 @@ package org.onap.holmes.common.dmaap;
import static org.easymock.EasyMock.anyObject;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.CoreMatchers.nullValue;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
+import java.io.*;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
import java.util.ArrayList;
import java.util.List;
+
+import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -34,6 +41,8 @@ import org.onap.holmes.common.aai.entity.RelationshipList.RelationshipData;
import org.onap.holmes.common.aai.entity.VmEntity;
import org.onap.holmes.common.aai.entity.VnfEntity;
import org.onap.holmes.common.api.stat.VesAlarm;
+import org.onap.holmes.common.dcae.DcaeConfigurationsCache;
+import org.onap.holmes.common.dcae.utils.DcaeConfigurationParser;
import org.onap.holmes.common.dmaap.entity.PolicyMsg;
import org.onap.holmes.common.dmaap.entity.PolicyMsg.EVENT_STATUS;
import org.onap.holmes.common.exception.CorrelationException;
@@ -183,7 +192,7 @@ public class DmaapServiceTest {
}
@Test
- public void testDmaapService_getEnrichedPolicyMsg_ok() throws Exception {
+ public void testDmaapService_getEnrichedPolicyMsg_onset() throws Exception {
PowerMock.resetAll();
VmEntity vmEntity = new VmEntity();
vmEntity.setInMaint(false);
@@ -204,9 +213,94 @@ public class DmaapServiceTest {
.invokeMethod(dmaapService, "getEnrichedPolicyMsg", vmEntity, vesAlarm, vesAlarm, "loopName");
PowerMock.verifyAll();
- assertThat(actual.getClosedLoopControlName(), equalTo(null));
+ assertThat(actual.getClosedLoopControlName(), nullValue());
assertThat(actual.getAai().get("vserver.prov-status"), equalTo("prov"));
- assertThat(actual.getAai().get("vserver.vserver-name2") == null, equalTo(true));
+ assertThat(actual.getAai().get("vserver.vserver-name2"), nullValue());
assertThat(actual.getAai().get("generic-vnf.service-instance-id"), equalTo(""));
}
+
+ @Test
+ public void testDmaapService_getEnrichedPolicyMsg_abated() throws Exception {
+ PowerMock.resetAll();
+ VmEntity vmEntity = new VmEntity();
+ vmEntity.setInMaint(false);
+ vmEntity.setClosedLoopDisable(true);
+ vmEntity.setProvStatus("prov");
+ vmEntity.setResourceVersion("kkkk");
+ VesAlarm vesAlarm = new VesAlarm();
+ vesAlarm.setEventId("11111");
+ vesAlarm.setEventName("3333");
+ vesAlarm.setSourceId("111");
+ vesAlarm.setStartEpochMicrosec(11111L);
+ vesAlarm.setLastEpochMicrosec(21111L);
+ vesAlarm.setAlarmIsCleared(PolicyMassgeConstant.POLICY_MESSAGE_ABATED);
+
+ PowerMock.expectPrivate(dmaapService, "getVnfEntity", anyObject(String.class),
+ anyObject(String.class)).andReturn(null).anyTimes();
+
+ PowerMock.replayAll();
+ PolicyMsg actual = Whitebox
+ .invokeMethod(dmaapService, "getEnrichedPolicyMsg", vmEntity, vesAlarm, vesAlarm, "loopName");
+ PowerMock.verifyAll();
+
+ assertThat(actual.getClosedLoopControlName(), nullValue());
+ assertThat(actual.getAai().get("vserver.prov-status"), nullValue());
+ assertThat(actual.getAai().get("vserver.vserver-name2"), nullValue());
+ assertThat(actual.getAai().get("generic-vnf.service-instance-id"), nullValue());
+ }
+
+ @Test
+ public void testPublishPolicyMsg_onset() throws Exception {
+ PowerMock.resetAll();
+ Publisher publisher = PowerMock.createPartialMock(Publisher.class, "publish", PolicyMsg.class);
+ PolicyMsg policyMsg = new PolicyMsg();
+ policyMsg.setClosedLoopEventStatus(EVENT_STATUS.ONSET);
+ PowerMock.expectNew(Publisher.class).andReturn(publisher);
+ EasyMock.expect(publisher.publish(policyMsg)).andReturn(true);
+
+ DcaeConfigurationsCache.setDcaeConfigurations(
+ DcaeConfigurationParser.parse(readConfigurationsFromFile("dcae.config.json")));
+
+ PowerMock.replayAll();
+ dmaapService.publishPolicyMsg(policyMsg, "sec_fault_unsecure");
+ PowerMock.verifyAll();
+
+ }
+
+ @Test
+ public void testPublishPolicyMsg_abated() throws Exception {
+ PowerMock.resetAll();
+ Publisher publisher = PowerMock.createPartialMock(Publisher.class, "publish", PolicyMsg.class);
+ PolicyMsg policyMsg = new PolicyMsg();
+ policyMsg.setClosedLoopEventStatus(EVENT_STATUS.ABATED);
+ policyMsg.setRequestID("testRequestid");
+ DmaapService.alarmUniqueRequestID.put("testAlarmId", "testRequestid");
+ PowerMock.expectNew(Publisher.class).andReturn(publisher);
+ EasyMock.expect(publisher.publish(policyMsg)).andReturn(true);
+
+ DcaeConfigurationsCache.setDcaeConfigurations(
+ DcaeConfigurationParser.parse(readConfigurationsFromFile("dcae.config.json")));
+
+ PowerMock.replayAll();
+ dmaapService.publishPolicyMsg(policyMsg, "sec_fault_unsecure");
+ PowerMock.verifyAll();
+
+ }
+
+ private String readConfigurationsFromFile(String fileName) throws URISyntaxException, FileNotFoundException {
+ URL url = DmaapServiceTest.class.getClassLoader().getResource(fileName);
+ File configFile = new File(new URI(url.toString()).getPath());
+ BufferedReader br = new BufferedReader(new FileReader(configFile));
+
+ final StringBuilder sb = new StringBuilder();
+ br.lines().forEach(line -> {
+ sb.append(line);
+ });
+ try {
+ br.close();
+ } catch (IOException e) {
+ // Do nothing
+ }
+ return sb.toString();
+ }
} \ No newline at end of file