Index: opennms-services/src/test/java/org/opennms/netmgt/notifd/BroadcastEventProcessorTest.java
===================================================================
--- opennms-services/src/test/java/org/opennms/netmgt/notifd/BroadcastEventProcessorTest.java (revision 5309)
+++ opennms-services/src/test/java/org/opennms/netmgt/notifd/BroadcastEventProcessorTest.java (working copy)
@@ -1,15 +1,20 @@
package org.opennms.netmgt.notifd;
import java.util.Collections;
+import java.util.Date;
-import junit.framework.TestCase;
+import org.opennms.netmgt.mock.MockService;
+import org.opennms.netmgt.mock.MockEventUtil;
+import org.opennms.netmgt.xml.event.Event;
+import org.opennms.test.mock.MockUtil;
-public class BroadcastEventProcessorTest extends TestCase {
+public class BroadcastEventProcessorTest extends NotificationsTestCase {
private BroadcastEventProcessor m_processor;
- protected void setUp() {
- m_processor = new BroadcastEventProcessor();
+ protected void setUp() throws Exception {
+ super.setUp();
+ m_processor = new BroadcastEventProcessor();
m_processor.initExpandRe();
}
@@ -21,4 +26,24 @@
public void testExpandNotifParms() {
m_processor.expandNotifParms("%foo%", Collections.EMPTY_MAP);
}
+
+ /**
+ * Call onEvent to see if the %noticeid% token gets expanded to a numeric
+ * value
+ */
+ public void testExpandNoticeId() throws Exception {
+ MockService svc = m_network.getService(1, "192.168.1.1", "ICMP");
+ Event event = MockEventUtil.createServiceEvent("Test", "uei.opennms.org/test/noticeIdExpansion", svc, null);
+
+ String antNID = Integer.toString(m_notificationManager.getNoticeId() + 1);
+ MockUtil.println("noticeID from NotificationManager is '" + antNID + "'");
+
+ Date testDate = new Date();
+ long finishedNotifs = anticipateNotificationsForGroup("notification '" + antNID + "'", "Notification '" + antNID + "'", "InitialGroup", testDate, 0);
+ MockEventUtil.setEventTime(event, testDate);
+
+ m_eventMgr.sendEventToListeners(event);
+
+ verifyAnticipated(finishedNotifs, 500);
+ }
}
Index: opennms-services/src/test/java/org/opennms/netmgt/notifd/NotificationsTestCase.java
===================================================================
--- opennms-services/src/test/java/org/opennms/netmgt/notifd/NotificationsTestCase.java (revision 5309)
+++ opennms-services/src/test/java/org/opennms/netmgt/notifd/NotificationsTestCase.java (working copy)
@@ -239,7 +239,15 @@
" OnCall\n" +
" Notification Test\n" +
" notification test\n" +
- " " +
+ " \n" +
+ " \n" +
+ " uei.opennms.org/test/noticeIdExpansion\n" +
+ " Test for noticeId expansion\n" +
+ " IPADDR IPLIKE *.*.*.*\n" +
+ " NoEscalate\n" +
+ " Notification '%noticeid%'\n" +
+ " notification '%noticeid%'\n" +
+ " \n" +
"\n" +
"";
public static final String GROUPS = "\n" +
Index: opennms-services/src/main/java/org/opennms/netmgt/notifd/BroadcastEventProcessor.java
===================================================================
--- opennms-services/src/main/java/org/opennms/netmgt/notifd/BroadcastEventProcessor.java (revision 5309)
+++ opennms-services/src/main/java/org/opennms/netmgt/notifd/BroadcastEventProcessor.java (working copy)
@@ -496,6 +496,7 @@
try {
noticeId = getNotificationManager().getNoticeId();
} catch (Exception e) {
log().error("Failed to get a unique id # for notification, exiting this notification", e);
continue;
@@ -686,6 +687,8 @@
// call the notid expansion method before the event expansion because
// event expansion will
// throw away any expanion strings it doesn't recognize!
+
+ paramMap.put("noticeid", Integer.toString(noticeId));
String textMessage = expandNotifParms((nullSafeTextMsg(notification)), paramMap);
String numericMessage = expandNotifParms((nullSafeNumerMsg(notification, noticeId)), paramMap);
String subjectLine = expandNotifParms((nullSafeSubj(notification, noticeId)), paramMap);
@@ -696,7 +699,6 @@
paramMap.put(NotificationManager.PARAM_NODE, event.hasNodeid() ? String.valueOf(event.getNodeid()) : "");
paramMap.put(NotificationManager.PARAM_INTERFACE, event.getInterface());
paramMap.put(NotificationManager.PARAM_SERVICE, event.getService());
- paramMap.put("noticeid", Integer.toString(noticeId));
paramMap.put("eventID", String.valueOf(event.getDbid()));
paramMap.put("eventUEI", event.getUei());