--- /dev/null
+/**\r
+ * Copyright 2017 ZTE Corporation.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+package org.onap.holmes.engine.db;\r
+\r
+import org.onap.holmes.common.api.entity.AlarmInfo;\r
+import org.onap.holmes.common.exception.AlarmInfoException;\r
+import org.onap.holmes.common.utils.AlarmInfoMapper;\r
+import org.skife.jdbi.v2.sqlobject.*;\r
+import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;\r
+\r
+import java.util.List;\r
+\r
+@RegisterMapper(AlarmInfoMapper.class)\r
+public abstract class AlarmInfoDao {\r
+\r
+ @GetGeneratedKeys\r
+ @SqlUpdate("INSERT INTO ALARM_INFO (EVENTID,EVENTNAME,STARTEPOCHMICROSEC,SOURCEID,SOURCENAME,ALARMISCLEARED,ROOTFLAG,LASTEPOCHMICROSEC) VALUES (:eventId,:eventName,:startEpochMicroSec,:sourceId,:sourceName,:alarmIsCleared,:rootFlag,:lastEpochMicroSec)")\r
+ protected abstract String addAlarm(@BindBean AlarmInfo alarmInfo);\r
+\r
+ @SqlQuery("SELECT * FROM ALARM_INFO")\r
+ protected abstract List<AlarmInfo> queryAlarm();\r
+\r
+ @SqlUpdate("DELETE FROM ALARM_INFO WHERE ALARMISCLEARED=:alarmiscleared")\r
+ protected abstract int deleteAlarmByAlarmIsCleared(@Bind("alarmiscleared") int alarmIsCleared);\r
+\r
+ public AlarmInfo saveAlarm(AlarmInfo alarmInfo) throws AlarmInfoException {\r
+ try {\r
+ addAlarm(alarmInfo);\r
+ return alarmInfo;\r
+ } catch(Exception e) {\r
+ throw new AlarmInfoException("Can not access the database. Please contact the administrator for help.", e);\r
+ }\r
+ }\r
+\r
+ public List<AlarmInfo> queryAllAlarm() throws AlarmInfoException {\r
+ try {\r
+ return queryAlarm();\r
+ } catch(Exception e) {\r
+ throw new AlarmInfoException("Can not access the database. Please contact the administrator for help.", e);\r
+ }\r
+ }\r
+\r
+ public void deleteClearedAlarm(AlarmInfo alarmInfo) {\r
+ int alarmIsCleared = alarmInfo.getAlarmIsCleared();\r
+ if(alarmIsCleared == 1) {\r
+ deleteAlarmByAlarmIsCleared(alarmIsCleared);\r
+ }\r
+ }\r
+}\r
* limitations under the License.
*/
package org.onap.holmes.engine.dmaap;
-import java.util.ArrayList;
-import java.util.List;
+
import lombok.extern.slf4j.Slf4j;
+import org.onap.holmes.common.api.entity.AlarmInfo;
import org.onap.holmes.common.api.stat.VesAlarm;
+import org.onap.holmes.common.exception.AlarmInfoException;
import org.onap.holmes.common.exception.CorrelationException;
import org.onap.holmes.dsa.dmaappolling.Subscriber;
+import org.onap.holmes.engine.db.AlarmInfoDao;
import org.onap.holmes.engine.manager.DroolsEngine;
+import java.util.ArrayList;
+import java.util.List;
+
@Slf4j
public class DMaaPAlarmPolling implements Runnable {
private Subscriber subscriber;
private DroolsEngine droolsEngine;
private volatile boolean isAlive = true;
+ private AlarmInfoDao alarmInfoDao;
- public DMaaPAlarmPolling(Subscriber subscriber, DroolsEngine droolsEngine) {
+
+ public DMaaPAlarmPolling(Subscriber subscriber, DroolsEngine droolsEngine, AlarmInfoDao alarmInfoDao) {
this.subscriber = subscriber;
this.droolsEngine = droolsEngine;
+ this.alarmInfoDao = alarmInfoDao;
}
public void run() {
List<VesAlarm> vesAlarmList = new ArrayList<>();
try {
vesAlarmList = subscriber.subscribe();
- vesAlarmList.forEach(vesAlarm -> droolsEngine.putRaisedIntoStream(vesAlarm));
+ vesAlarmList.forEach(vesAlarm -> {
+ try {
+ alarmInfoDao.saveAlarm(getAlarmInfo(vesAlarm));
+ droolsEngine.putRaisedIntoStream(vesAlarm);
+ } catch(AlarmInfoException e) {
+ log.error("Failed to save alarm to database", e);
+ }
+ });
} catch (CorrelationException e) {
log.error("Failed to process alarms. Sleep for 60 seconds to restart.", e);
try {
}
}
}
+ private AlarmInfo getAlarmInfo(VesAlarm vesAlarm) {
+ AlarmInfo alarmInfo = new AlarmInfo();
+ alarmInfo.setAlarmIsCleared(vesAlarm.getAlarmIsCleared());
+ alarmInfo.setSourceName(vesAlarm.getSourceName());
+ alarmInfo.setSourceId(vesAlarm.getSourceId());
+ alarmInfo.setStartEpochMicroSec(vesAlarm.getStartEpochMicrosec());
+ alarmInfo.setLastEpochMicroSec(vesAlarm.getLastEpochMicrosec());
+ alarmInfo.setEventId(vesAlarm.getEventId());
+ alarmInfo.setEventName(vesAlarm.getEventName());
+ alarmInfo.setRootFlag(vesAlarm.getRootFlag());
+ return alarmInfo;
+ }
public void stopTask() {
isAlive = false;
import javax.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import org.jvnet.hk2.annotations.Service;
+import org.onap.holmes.common.utils.DbDaoUtil;
import org.onap.holmes.dsa.dmaappolling.Subscriber;
+import org.onap.holmes.engine.db.AlarmInfoDao;
import org.onap.holmes.engine.manager.DroolsEngine;
@Service
@Inject
private DroolsEngine droolsEngine;
+ @Inject
+ private DbDaoUtil daoUtil;
private HashMap<String, DMaaPAlarmPolling> pollingTasks = new HashMap<>();
public synchronized void addSubscriber(Subscriber subscriber) {
String topic = subscriber.getTopic();
if (topic != null && !pollingTasks.containsKey(topic)) {
- DMaaPAlarmPolling pollingTask = new DMaaPAlarmPolling(subscriber, droolsEngine);
+ AlarmInfoDao alarmInfoDao = daoUtil.getJdbiDaoByOnDemand(AlarmInfoDao.class);
+ DMaaPAlarmPolling pollingTask = new DMaaPAlarmPolling(subscriber, droolsEngine, alarmInfoDao);
Thread thread = new Thread(pollingTask);
thread.start();
pollingTasks.put(topic, pollingTask);
import java.util.Locale;\r
import java.util.Set;\r
import javax.annotation.PostConstruct;\r
-import javax.annotation.PreDestroy;\r
import javax.inject.Inject;\r
import lombok.extern.slf4j.Slf4j;\r
import org.drools.compiler.kie.builder.impl.InternalKieModule;\r
import org.jvnet.hk2.annotations.Service;\r
+\r
import org.kie.api.KieBase;\r
import org.kie.api.KieServices;\r
import org.kie.api.builder.KieBuilder;\r
import org.kie.api.runtime.KieSession;\r
import org.kie.api.runtime.conf.ClockTypeOption;\r
import org.kie.api.runtime.rule.FactHandle;\r
+\r
+import org.onap.holmes.common.api.entity.AlarmInfo;\r
+\r
import org.onap.holmes.common.api.stat.VesAlarm;\r
import org.onap.holmes.common.dmaap.DmaapService;\r
+import org.onap.holmes.common.exception.AlarmInfoException;\r
+import org.onap.holmes.common.utils.DbDaoUtil;\r
+import org.onap.holmes.engine.db.AlarmInfoDao;\r
import org.onap.holmes.engine.request.DeployRuleRequest;\r
import org.onap.holmes.common.api.entity.CorrelationRule;\r
import org.onap.holmes.common.exception.CorrelationException;\r
@Inject\r
private RuleMgtWrapper ruleMgtWrapper;\r
\r
+\r
private KieBase kieBase;\r
private KieSession kieSession;\r
private KieContainer kieContainer;\r
private KieResources resources;\r
private KieRepository kieRepository;\r
\r
+ private AlarmInfoDao alarmInfoDao;\r
+ @Inject\r
+ private DbDaoUtil daoUtil;\r
+\r
+\r
@PostConstruct\r
private void init() {\r
+ alarmInfoDao = daoUtil.getJdbiDaoByOnDemand(AlarmInfoDao.class);\r
try {\r
// start engine\r
start();\r
}\r
}\r
\r
- private void start() throws CorrelationException {\r
+ private void start() throws AlarmInfoException {\r
log.info("Drools Engine Initialize Beginning...");\r
\r
initEngineParameter();\r
- initDeployRule();\r
+ alarmSynchronization();\r
+// initDeployRule();\r
\r
- log.info("Business Rule Engine Initialize Successfully.");\r
+ log.info("Alarm synchronization Successfully.");\r
}\r
\r
public void stop() {\r
}\r
this.kieSession.insert(raiseAlarm);\r
this.kieSession.fireAllRules();\r
+\r
}\r
\r
public List<String> queryAllPackage() {\r
kieBase.removeKiePackage(kiePackage.getName());\r
}\r
\r
+ public void alarmSynchronization() throws AlarmInfoException {\r
+ alarmInfoDao.queryAllAlarm().forEach(alarmInfo -> alarmInfoDao.deleteClearedAlarm(alarmInfo));\r
+ alarmInfoDao.queryAllAlarm().forEach(alarmInfo -> putRaisedIntoStream(convertAlarmInfo2VesAlarm(alarmInfo)));\r
+ }\r
+\r
+ private VesAlarm convertAlarmInfo2VesAlarm(AlarmInfo alarmInfo) {\r
+ VesAlarm vesAlarm = new VesAlarm();\r
+ vesAlarm.setEventId(alarmInfo.getEventId());\r
+ vesAlarm.setEventName(alarmInfo.getEventName());\r
+ vesAlarm.setStartEpochMicrosec(alarmInfo.getStartEpochMicroSec());\r
+ vesAlarm.setSourceId(alarmInfo.getSourceId());\r
+ vesAlarm.setSourceName(alarmInfo.getSourceName());\r
+ vesAlarm.setRootFlag(alarmInfo.getRootFlag());\r
+ vesAlarm.setAlarmIsCleared(alarmInfo.getAlarmIsCleared());\r
+ vesAlarm.setLastEpochMicrosec(alarmInfo.getLastEpochMicroSec());\r
+ return vesAlarm;\r
+ }\r
+\r
}\r
*/\r
package org.onap.holmes.engine;\r
\r
+import org.easymock.EasyMock;\r
+import org.junit.Test;\r
+import org.junit.runner.RunWith;\r
+import org.onap.holmes.common.config.MicroServiceConfig;\r
+import org.onap.msb.sdk.discovery.entity.MicroServiceInfo;\r
+import org.onap.msb.sdk.discovery.entity.Node;\r
+import org.powermock.api.easymock.PowerMock;\r
+import org.powermock.core.classloader.annotations.PrepareForTest;\r
+import org.powermock.modules.junit4.PowerMockRunner;\r
+import org.powermock.reflect.Whitebox;\r
+\r
+import static org.hamcrest.CoreMatchers.equalTo;\r
+import static org.hamcrest.CoreMatchers.is;\r
+import static org.junit.Assert.assertThat;\r
+\r
+@PrepareForTest(MicroServiceConfig.class)\r
+@RunWith(PowerMockRunner.class)\r
public class EngineDActiveAppTest {\r
+\r
public static void main(String[] args) throws Exception {\r
String filePath = "C:\\engine-d.yml";\r
new EngineDActiveApp().run(new String[]{"server", filePath});\r
}\r
+\r
+ @Test\r
+ public void testCreateMicroServiceInfo() throws Exception {\r
+ EngineDActiveApp engineDActiveApp = new EngineDActiveApp();\r
+ PowerMock.mockStatic(MicroServiceConfig.class);\r
+ String[] serviceAddrInfo = new String[2];\r
+ serviceAddrInfo[0] = "10.74.216.82";\r
+ serviceAddrInfo[1] = "80";\r
+ EasyMock.expect(MicroServiceConfig.getMicroServiceIpAndPort()).andReturn(serviceAddrInfo);\r
+ EasyMock.expectLastCall();\r
+ PowerMock.replayAll();\r
+\r
+ MicroServiceInfo msinfo = Whitebox.invokeMethod(engineDActiveApp,"createMicroServiceInfo");\r
+\r
+ PowerMock.verifyAll();\r
+\r
+ assertThat(msinfo.getServiceName(), equalTo("holmes-engine-mgmt"));\r
+ assertThat(msinfo.getVersion(), equalTo("v1"));\r
+ assertThat(msinfo.getUrl(), equalTo("/api/holmes-engine-mgmt/v1"));\r
+ assertThat(msinfo.getProtocol(), equalTo("REST"));\r
+ assertThat(msinfo.getVisualRange(), equalTo("0|1"));\r
+ assertThat(msinfo.isEnable_ssl(), is(true));\r
+ assertThat(msinfo.getNodes().toArray(new Node[0])[0].getIp(), equalTo(serviceAddrInfo[0]));\r
+ assertThat(msinfo.getNodes().toArray(new Node[0])[0].getPort(), equalTo(serviceAddrInfo[1]));\r
+ }\r
}\r
--- /dev/null
+/**\r
+ * Copyright 2017 ZTE Corporation.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+package org.onap.holmes.engine.db;\r
+\r
+import org.easymock.EasyMock;\r
+import org.hamcrest.core.IsNot;\r
+import org.hamcrest.core.IsNull;\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.Rule;\r
+import org.junit.Test;\r
+import org.junit.rules.ExpectedException;\r
+import org.onap.holmes.common.api.entity.AlarmInfo;\r
+import org.onap.holmes.common.exception.AlarmInfoException;\r
+import org.powermock.api.easymock.PowerMock;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+public class AlarmInfoDaoTest {\r
+\r
+\r
+ private AlarmInfoDao alarmInfoDao;\r
+\r
+ @Before\r
+ public void setUp() {\r
+ alarmInfoDao = PowerMock.createMock(AlarmInfoDao.class);\r
+ }\r
+\r
+ @Test\r
+ public void queryAllAlarm() throws Exception {\r
+\r
+ EasyMock.expect(alarmInfoDao.queryAllAlarm()).andReturn(new ArrayList<AlarmInfo>());\r
+ PowerMock.replayAll();\r
+\r
+ List<AlarmInfo> alarmInfoList = alarmInfoDao.queryAllAlarm();\r
+ PowerMock.verifyAll();\r
+ Assert.assertThat(alarmInfoList, IsNull.<List<AlarmInfo>>notNullValue());\r
+ }\r
+}\r
*/
package org.onap.holmes.engine.dmaap;
+import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.core.IsEqual.equalTo;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.onap.holmes.common.api.entity.AlarmInfo;
+import org.onap.holmes.common.api.stat.VesAlarm;
import org.onap.holmes.dsa.dmaappolling.Subscriber;
+import org.onap.holmes.engine.db.AlarmInfoDao;
import org.onap.holmes.engine.manager.DroolsEngine;
import org.powermock.api.easymock.PowerMock;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
+import org.powermock.reflect.Whitebox;
-@PrepareForTest({Subscriber.class, DroolsEngine.class})
+@PrepareForTest({Subscriber.class, DroolsEngine.class,DMaaPAlarmPolling.class})
@RunWith(PowerMockRunner.class)
public class DMaaPAlarmPollingTest {
private DMaaPAlarmPolling dMaaPAlarmPolling;
private Subscriber subscriber;
private DroolsEngine droolsEngine;
+ private AlarmInfoDao alarmInfoDao;
@Before
public void setUp() {
subscriber = PowerMock.createMock(Subscriber.class);
droolsEngine = PowerMock.createMock(DroolsEngine.class);
- dMaaPAlarmPolling = new DMaaPAlarmPolling(subscriber, droolsEngine);
+ alarmInfoDao = PowerMock.createMock(AlarmInfoDao.class);
+ dMaaPAlarmPolling = new DMaaPAlarmPolling(subscriber, droolsEngine,alarmInfoDao);
PowerMock.replayAll();
}
assertThat(field.get(dMaaPAlarmPolling), equalTo(false));
}
+ @Test
+ public void testGetAlarmInfo() throws Exception {
+ VesAlarm vesAlarm = new VesAlarm();
+ vesAlarm.setAlarmIsCleared(1);
+ vesAlarm.setSourceName("sourceName");
+ vesAlarm.setSourceId("sourceId");
+ vesAlarm.setStartEpochMicrosec(1L);
+ vesAlarm.setLastEpochMicrosec(1L);
+ vesAlarm.setEventName("eventName");
+ vesAlarm.setEventId("eventId");
+ vesAlarm.setRootFlag(0);
+
+ PowerMock.replayAll();
+ AlarmInfo alarmInfo = Whitebox.invokeMethod(dMaaPAlarmPolling,"getAlarmInfo",vesAlarm);
+ PowerMock.verifyAll();
+
+ assertThat(alarmInfo.getAlarmIsCleared(), is(1));
+ assertThat(alarmInfo.getSourceName(), equalTo("sourceName"));
+ assertThat(alarmInfo.getSourceId(), equalTo("sourceId"));
+ assertThat(alarmInfo.getStartEpochMicroSec(), is(1L));
+ assertThat(alarmInfo.getLastEpochMicroSec(), is(1L));
+ assertThat(alarmInfo.getEventName(), equalTo("eventName"));
+ assertThat(alarmInfo.getEventId(), equalTo("eventId"));
+ assertThat(alarmInfo.getRootFlag(), is(0));
+ }
+
}
\ No newline at end of file
public void setUp() {
subscriberAction = new SubscriberAction();
HashMap<String, DMaaPAlarmPolling> dMaaPAlarmPollingHashMap = new HashMap<>();
- DMaaPAlarmPolling dMaaPAlarmPolling = new DMaaPAlarmPolling(null, null);
+ DMaaPAlarmPolling dMaaPAlarmPolling = new DMaaPAlarmPolling(null, null,null);
dMaaPAlarmPollingHashMap.put("test", dMaaPAlarmPolling);
- DMaaPAlarmPolling dMaaPAlarmPolling1 = new DMaaPAlarmPolling(null, null);
+ DMaaPAlarmPolling dMaaPAlarmPolling1 = new DMaaPAlarmPolling(null, null,null);
dMaaPAlarmPollingHashMap.put("testTopic", dMaaPAlarmPolling1);
Whitebox.setInternalState(subscriberAction, "pollingTasks", dMaaPAlarmPollingHashMap);
PowerMock.replayAll();
\r
package org.onap.holmes.engine.manager;\r
\r
-import static org.easymock.EasyMock.anyInt;\r
-import static org.easymock.EasyMock.expect;\r
-\r
-import java.lang.reflect.Method;\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-import java.util.Locale;\r
+import org.easymock.EasyMock;\r
import org.junit.Before;\r
import org.junit.Rule;\r
import org.junit.Test;\r
import org.kie.api.io.KieResources;\r
import org.kie.api.runtime.KieContainer;\r
import org.kie.api.runtime.KieSession;\r
-import org.onap.holmes.common.api.stat.VesAlarm;\r
-import org.onap.holmes.engine.request.DeployRuleRequest;\r
+import org.onap.holmes.common.api.entity.AlarmInfo;\r
import org.onap.holmes.common.api.entity.CorrelationRule;\r
+import org.onap.holmes.common.api.stat.VesAlarm;\r
import org.onap.holmes.common.constant.AlarmConst;\r
import org.onap.holmes.common.exception.CorrelationException;\r
+import org.onap.holmes.common.utils.DbDaoUtil;\r
+import org.onap.holmes.engine.db.AlarmInfoDao;\r
+import org.onap.holmes.engine.request.DeployRuleRequest;\r
import org.onap.holmes.engine.wrapper.RuleMgtWrapper;\r
import org.powermock.api.easymock.PowerMock;\r
import org.powermock.reflect.Whitebox;\r
\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import java.util.Locale;\r
+\r
+import static org.hamcrest.CoreMatchers.is;\r
+import static org.hamcrest.core.IsEqual.equalTo;\r
+import static org.junit.Assert.assertThat;\r
+\r
public class DroolsEngineTest {\r
\r
@Rule\r
private KieResources resources;\r
private KieRepository kieRepository;\r
\r
+ private AlarmInfoDao alarmInfoDaoMock;\r
\r
private DroolsEngine droolsEngine;\r
\r
+ private DbDaoUtil dbDaoUtilMock;\r
+\r
@Before\r
public void setUp() throws Exception {\r
droolsEngine = new DroolsEngine();\r
kieBase = kieContainer.getKieBase();\r
kieSession = kieContainer.newKieSession();\r
\r
- ruleMgtWrapper = PowerMock.createMock(RuleMgtWrapper.class);\r
+ alarmInfoDaoMock = PowerMock.createMock(AlarmInfoDao.class);\r
+ dbDaoUtilMock = PowerMock.createMock(DbDaoUtil.class);\r
\r
- Whitebox.setInternalState(droolsEngine, "ruleMgtWrapper", ruleMgtWrapper);\r
\r
Whitebox.setInternalState(droolsEngine, "kieBase", kieBase);\r
Whitebox.setInternalState(droolsEngine, "kieSession", kieSession);\r
Whitebox.setInternalState(droolsEngine, "resources", resources);\r
Whitebox.setInternalState(droolsEngine, "kieRepository", kieRepository);\r
\r
+ Whitebox.setInternalState(droolsEngine, "daoUtil", dbDaoUtilMock);\r
+ Whitebox.setInternalState(droolsEngine, "alarmInfoDao", alarmInfoDaoMock);\r
+\r
PowerMock.resetAll();\r
}\r
\r
rule.setPackageName("org.onap.holmes");\r
rules.add(rule);\r
\r
- expect(ruleMgtWrapper.queryRuleByEnable(anyInt())).andReturn(rules);\r
+// expect(ruleMgtWrapper.queryRuleByEnable(anyInt())).andReturn(rules);\r
+ List<AlarmInfo> alarmInfoList = new ArrayList<AlarmInfo>();\r
+ EasyMock.expect(dbDaoUtilMock.getJdbiDaoByOnDemand(AlarmInfoDao.class)).andReturn(alarmInfoDaoMock).anyTimes();\r
+ EasyMock.expect(alarmInfoDaoMock.queryAllAlarm()).andReturn(alarmInfoList).anyTimes();\r
PowerMock.replayAll();\r
\r
- Method method = DroolsEngine.class.getDeclaredMethod("init");\r
- method.setAccessible(true);\r
- method.invoke(droolsEngine);\r
-\r
PowerMock.verifyAll();\r
}\r
\r
public void stop() throws Exception {\r
droolsEngine.stop();\r
}\r
+\r
+ @Test\r
+ public void testConvertAlarmInfo2VesAlarm() throws Exception {\r
+ AlarmInfo alarmInfo = new AlarmInfo();\r
+ alarmInfo.setEventId("eventId");\r
+ alarmInfo.setEventName("eventName");\r
+ alarmInfo.setStartEpochMicroSec(1L);\r
+ alarmInfo.setLastEpochMicroSec(1L);\r
+ alarmInfo.setSourceId("sourceId");\r
+ alarmInfo.setSourceName("sourceName");\r
+ alarmInfo.setRootFlag(0);\r
+ alarmInfo.setAlarmIsCleared(1);\r
+\r
+ PowerMock.replayAll();\r
+ VesAlarm vesAlarm = Whitebox.invokeMethod(droolsEngine,"convertAlarmInfo2VesAlarm",alarmInfo);\r
+ PowerMock.verifyAll();\r
+\r
+ assertThat(vesAlarm.getAlarmIsCleared(), is(1));\r
+ assertThat(vesAlarm.getSourceName(), equalTo("sourceName"));\r
+ assertThat(vesAlarm.getSourceId(), equalTo("sourceId"));\r
+ assertThat(vesAlarm.getStartEpochMicrosec(), is(1L));\r
+ assertThat(vesAlarm.getLastEpochMicrosec(), is(1L));\r
+ assertThat(vesAlarm.getEventName(), equalTo("eventName"));\r
+ assertThat(vesAlarm.getEventId(), equalTo("eventId"));\r
+ assertThat(vesAlarm.getRootFlag(), is(0));\r
+ }\r
}\r