use of org.opennms.netmgt.config.threshd.Threshold in project opennms by OpenNMS.
the class ThresholdEvaluatorHighLowTest method testEvaluateHighTriggerOnce.
@Test
public void testEvaluateHighTriggerOnce() {
Threshold threshold = new Threshold();
threshold.setType(ThresholdType.HIGH);
threshold.setDsName("ds-name");
threshold.setDsType("node");
threshold.setValue(99.0);
threshold.setRearm(0.5);
threshold.setTrigger(1);
ThresholdConfigWrapper wrapper = new ThresholdConfigWrapper(threshold);
ThresholdEvaluatorState item = new ThresholdEvaluatorStateHighLow(wrapper);
Status status = item.evaluate(100.0);
assertEquals("threshold evaluation status", Status.TRIGGERED, status);
}
use of org.opennms.netmgt.config.threshd.Threshold in project opennms by OpenNMS.
the class ThresholdEvaluatorHighLowTest method testIsThresholdExceededBogusType.
@Test
public void testIsThresholdExceededBogusType() {
Threshold threshold = new Threshold();
threshold.setType(ThresholdType.RELATIVE_CHANGE);
threshold.setDsName("ds-name");
threshold.setDsType("node");
threshold.setValue(99.0);
threshold.setRearm(0.5);
threshold.setTrigger(1);
ThresholdConfigWrapper wrapper = new ThresholdConfigWrapper(threshold);
ThrowableAnticipator ta = new ThrowableAnticipator();
ta.anticipate(new IllegalStateException("This thresholding strategy can only be used for thresholding types of 'high' and 'low'."));
try {
ThresholdEvaluatorStateHighLow item = new ThresholdEvaluatorStateHighLow(wrapper);
item.isThresholdExceeded(98.0);
} catch (Throwable t) {
ta.throwableReceived(t);
}
ta.verifyAnticipated();
}
use of org.opennms.netmgt.config.threshd.Threshold in project opennms by OpenNMS.
the class ThresholdEvaluatorAbsoluteChangeTest method testGetEventForStateTriggered.
@Test
public void testGetEventForStateTriggered() {
Threshold threshold = new Threshold();
threshold.setType(ThresholdType.ABSOLUTE_CHANGE);
threshold.setDsName("ds-name");
threshold.setDsType("node");
threshold.setValue(1.0);
threshold.setRearm(0.5);
threshold.setTrigger(3);
ThresholdConfigWrapper wrapper = new ThresholdConfigWrapper(threshold);
ThresholdEvaluatorStateAbsoluteChange evaluator = new ThresholdEvaluatorStateAbsoluteChange(wrapper);
assertEquals("should not trigger", Status.NO_CHANGE, evaluator.evaluate(8.0));
assertEquals("should trigger", Status.TRIGGERED, evaluator.evaluate(10.0));
// Do it once with a null instance
Event event = evaluator.getEventForState(Status.TRIGGERED, new Date(), 10.0, null);
assertNotNull("should have created an event", event);
assertEquals("UEIs should be the same", EventConstants.ABSOLUTE_CHANGE_THRESHOLD_EVENT_UEI, event.getUei());
assertNotNull("event should have parms", event.getParmCollection());
parmPresentAndValueNonNull(event, "instance");
parmPresentWithValue(event, "value", "10.0");
parmPresentWithValue(event, "previousValue", "8.0");
parmPresentWithValue(event, "changeThreshold", "1.0");
// And again with a non-null instance
event = evaluator.getEventForState(Status.TRIGGERED, new Date(), 10.0, new MockCollectionResourceWrapper("testInstance"));
assertNotNull("should have created an event", event);
assertEquals("UEIs should be the same", EventConstants.ABSOLUTE_CHANGE_THRESHOLD_EVENT_UEI, event.getUei());
assertNotNull("event should have parms", event.getParmCollection());
parmPresentWithValue(event, "instance", "testInstance");
parmPresentWithValue(event, "value", "10.0");
parmPresentWithValue(event, "previousValue", "8.0");
parmPresentWithValue(event, "changeThreshold", "1.0");
}
use of org.opennms.netmgt.config.threshd.Threshold in project opennms by OpenNMS.
the class ThresholdEvaluatorAbsoluteChangeTest method testGetEventForStateNoChange.
@Test
public void testGetEventForStateNoChange() {
Threshold threshold = new Threshold();
threshold.setType(ThresholdType.ABSOLUTE_CHANGE);
threshold.setDsName("ds-name");
threshold.setDsType("node");
threshold.setValue(1.1);
threshold.setRearm(0.5);
threshold.setTrigger(3);
ThresholdConfigWrapper wrapper = new ThresholdConfigWrapper(threshold);
ThresholdEvaluatorStateAbsoluteChange evaluator = new ThresholdEvaluatorStateAbsoluteChange(wrapper);
assertNull("should not have created an event", evaluator.getEventForState(Status.NO_CHANGE, new Date(), 10.0, null));
}
use of org.opennms.netmgt.config.threshd.Threshold in project opennms by OpenNMS.
the class ThresholdEvaluatorAbsoluteChangeTest method testEvaluateTwiceNoTriggerLowAbove.
@Test
public void testEvaluateTwiceNoTriggerLowAbove() {
Threshold threshold = new Threshold();
threshold.setType(ThresholdType.ABSOLUTE_CHANGE);
threshold.setDsName("ds-name");
threshold.setDsType("node");
threshold.setValue(-1.0);
threshold.setRearm(0.5);
threshold.setTrigger(3);
ThresholdConfigWrapper wrapper = new ThresholdConfigWrapper(threshold);
ThresholdEvaluatorStateAbsoluteChange evaluator = new ThresholdEvaluatorStateAbsoluteChange(wrapper);
assertEquals("should not trigger", Status.NO_CHANGE, evaluator.evaluate(10.0));
assertEquals("should not trigger", Status.NO_CHANGE, evaluator.evaluate(9.5));
}
Aggregations