diff options
author | tangpeng <tang.peng5@zte.com.cn> | 2019-02-22 17:47:23 +0800 |
---|---|---|
committer | tangpeng <tang.peng5@zte.com.cn> | 2019-02-22 17:47:23 +0800 |
commit | 81edfdbaffd9c450f37d2418bb444473ee3bbe77 (patch) | |
tree | 5c2d5889fc79428d6ab7fa793d1986c7e963ae0b | |
parent | 6a3873859d6efd8199d4812e3fb4ae2fe8a47e41 (diff) |
Added some codes for UT
Change-Id: Iaf47ab320511538618c031913dc349679b4ed6b8
Issue-ID: HOLMES-203
Signed-off-by: tangpeng <tang.peng5@zte.com.cn>
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 |