X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=engine-d%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fholmes%2Fengine%2Fmanager%2FDroolsEngineTest.java;h=71ef1721b51e1af7025f31ccf677312aa7cef05c;hb=43f5b3a0ddb7f22b3c29a4f042991155a46e41d6;hp=885b5e44515b0e7200c6eb446674e941fd3cb295;hpb=2c8f636bab4c98a728bdda9f359c66e3f9ad1a2e;p=holmes%2Fengine-management.git diff --git a/engine-d/src/test/java/org/onap/holmes/engine/manager/DroolsEngineTest.java b/engine-d/src/test/java/org/onap/holmes/engine/manager/DroolsEngineTest.java index 885b5e4..71ef172 100644 --- a/engine-d/src/test/java/org/onap/holmes/engine/manager/DroolsEngineTest.java +++ b/engine-d/src/test/java/org/onap/holmes/engine/manager/DroolsEngineTest.java @@ -16,68 +16,89 @@ package org.onap.holmes.engine.manager; -import static org.easymock.EasyMock.anyInt; -import static org.easymock.EasyMock.expect; - -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; -import org.drools.KnowledgeBase; -import org.drools.KnowledgeBaseConfiguration; -import org.drools.KnowledgeBaseFactory; -import org.drools.conf.EventProcessingOption; -import org.drools.runtime.StatefulKnowledgeSession; +import org.easymock.EasyMock; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; -import org.onap.holmes.common.api.stat.VesAlarm; -import org.onap.holmes.engine.request.DeployRuleRequest; +import org.kie.api.KieBase; +import org.kie.api.KieServices; +import org.kie.api.builder.KieBuilder; +import org.kie.api.builder.KieFileSystem; +import org.kie.api.builder.KieRepository; +import org.kie.api.io.KieResources; +import org.kie.api.runtime.KieContainer; +import org.kie.api.runtime.KieSession; +import org.onap.holmes.common.api.entity.AlarmInfo; import org.onap.holmes.common.api.entity.CorrelationRule; +import org.onap.holmes.common.api.stat.VesAlarm; import org.onap.holmes.common.constant.AlarmConst; import org.onap.holmes.common.exception.CorrelationException; +import org.onap.holmes.common.utils.DbDaoUtil; +import org.onap.holmes.engine.db.AlarmInfoDao; +import org.onap.holmes.engine.request.DeployRuleRequest; import org.onap.holmes.engine.wrapper.RuleMgtWrapper; import org.powermock.api.easymock.PowerMock; -import org.powermock.modules.junit4.rule.PowerMockRule; import org.powermock.reflect.Whitebox; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.core.IsEqual.equalTo; +import static org.junit.Assert.assertThat; + public class DroolsEngineTest { @Rule public ExpectedException thrown = ExpectedException.none(); - @Rule - public PowerMockRule powerMockRule = new PowerMockRule(); - private RuleMgtWrapper ruleMgtWrapper; - private KnowledgeBase kbase; - - private KnowledgeBaseConfiguration kconf; - - private StatefulKnowledgeSession ksession; + private KieBase kieBase; + private KieSession kieSession; + private KieContainer kieContainer; + private KieFileSystem kfs; + private KieServices ks; + private KieBuilder kieBuilder; + private KieResources resources; + private KieRepository kieRepository; + private AlarmInfoDao alarmInfoDaoMock; private DroolsEngine droolsEngine; + private DbDaoUtil dbDaoUtilMock; + @Before - public void setUp() { + public void setUp() throws Exception { droolsEngine = new DroolsEngine(); - this.kconf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); - this.kconf.setOption(EventProcessingOption.STREAM); - this.kconf.setProperty("drools.assertBehaviour", "equality"); - this.kbase = KnowledgeBaseFactory.newKnowledgeBase("D-ENGINE", this.kconf); - this.ksession = kbase.newStatefulKnowledgeSession(); + ks = KieServices.Factory.get(); + resources = ks.getResources(); + kieRepository = ks.getRepository(); + kfs = Whitebox.invokeMethod(droolsEngine, "createKieFileSystemWithKProject", ks); + kieBuilder = ks.newKieBuilder(kfs).buildAll(); + kieContainer = ks.newKieContainer(kieRepository.getDefaultReleaseId()); + kieBase = kieContainer.getKieBase(); + kieSession = kieContainer.newKieSession(); - ruleMgtWrapper = PowerMock.createMock(RuleMgtWrapper.class); + alarmInfoDaoMock = PowerMock.createMock(AlarmInfoDao.class); + dbDaoUtilMock = PowerMock.createMock(DbDaoUtil.class); - Whitebox.setInternalState(droolsEngine, "ruleMgtWrapper", ruleMgtWrapper); - Whitebox.setInternalState(droolsEngine, "kconf", kconf); - Whitebox.setInternalState(droolsEngine, "kbase", kbase); - Whitebox.setInternalState(droolsEngine, "ksession", ksession); + Whitebox.setInternalState(droolsEngine, "kieBase", kieBase); + Whitebox.setInternalState(droolsEngine, "kieSession", kieSession); + Whitebox.setInternalState(droolsEngine, "kieContainer", kieContainer); + Whitebox.setInternalState(droolsEngine, "kfs", kfs); + Whitebox.setInternalState(droolsEngine, "ks", ks); + Whitebox.setInternalState(droolsEngine, "kieBuilder", kieBuilder); + Whitebox.setInternalState(droolsEngine, "resources", resources); + Whitebox.setInternalState(droolsEngine, "kieRepository", kieRepository); + + Whitebox.setInternalState(droolsEngine, "daoUtil", dbDaoUtilMock); + Whitebox.setInternalState(droolsEngine, "alarmInfoDao", alarmInfoDaoMock); PowerMock.resetAll(); } @@ -87,16 +108,17 @@ public class DroolsEngineTest { List rules = new ArrayList(); CorrelationRule rule = new CorrelationRule(); - rule.setContent("content"); + rule.setContent("package content"); + rule.setClosedControlLoopName("test"); + rule.setPackageName("org.onap.holmes"); rules.add(rule); - expect(ruleMgtWrapper.queryRuleByEnable(anyInt())).andReturn(rules); +// expect(ruleMgtWrapper.queryRuleByEnable(anyInt())).andReturn(rules); + List alarmInfoList = new ArrayList(); + EasyMock.expect(dbDaoUtilMock.getJdbiDaoByOnDemand(AlarmInfoDao.class)).andReturn(alarmInfoDaoMock).anyTimes(); + EasyMock.expect(alarmInfoDaoMock.queryAllAlarm()).andReturn(alarmInfoList).anyTimes(); PowerMock.replayAll(); - Method method = DroolsEngine.class.getDeclaredMethod("init"); - method.setAccessible(true); - method.invoke(droolsEngine); - PowerMock.verifyAll(); } @@ -166,17 +188,19 @@ public class DroolsEngineTest { } @Test - public void putRaisedIntoStream_facthandle_is_null() { + public void putRaisedIntoStream_facthandle_is_not_null() { VesAlarm raiseAlarm = new VesAlarm(); - raiseAlarm.setVersion((long) 245235); + raiseAlarm.setSourceId("11111"); + raiseAlarm.setEventName("alarm"); droolsEngine.putRaisedIntoStream(raiseAlarm); droolsEngine.putRaisedIntoStream(raiseAlarm); } @Test - public void putRaisedIntoStream_factHandle_is_not_null() { + public void putRaisedIntoStream_factHandle_is_null() { VesAlarm raiseAlarm = new VesAlarm(); - raiseAlarm.setVersion((long) 245235); + raiseAlarm.setSourceId("11111"); + raiseAlarm.setEventName("alarm"); droolsEngine.putRaisedIntoStream(raiseAlarm); } @@ -184,4 +208,30 @@ public class DroolsEngineTest { public void stop() throws Exception { droolsEngine.stop(); } + + @Test + public void testConvertAlarmInfo2VesAlarm() throws Exception { + AlarmInfo alarmInfo = new AlarmInfo(); + alarmInfo.setEventId("eventId"); + alarmInfo.setEventName("eventName"); + alarmInfo.setStartEpochMicroSec(1L); + alarmInfo.setLastEpochMicroSec(1L); + alarmInfo.setSourceId("sourceId"); + alarmInfo.setSourceName("sourceName"); + alarmInfo.setRootFlag(0); + alarmInfo.setAlarmIsCleared(1); + + PowerMock.replayAll(); + VesAlarm vesAlarm = Whitebox.invokeMethod(droolsEngine,"convertAlarmInfo2VesAlarm",alarmInfo); + PowerMock.verifyAll(); + + assertThat(vesAlarm.getAlarmIsCleared(), is(1)); + assertThat(vesAlarm.getSourceName(), equalTo("sourceName")); + assertThat(vesAlarm.getSourceId(), equalTo("sourceId")); + assertThat(vesAlarm.getStartEpochMicrosec(), is(1L)); + assertThat(vesAlarm.getLastEpochMicrosec(), is(1L)); + assertThat(vesAlarm.getEventName(), equalTo("eventName")); + assertThat(vesAlarm.getEventId(), equalTo("eventId")); + assertThat(vesAlarm.getRootFlag(), is(0)); + } }