package com.espertech.esper.example.qos_sla.monitor; import com.espertech.esper.client.Configuration; import com.espertech.esper.client.EPRuntime; import com.espertech.esper.client.EPServiceProviderManager; import com.espertech.esper.example.qos_sla.eventbean.OperationMeasurement; import junit.framework.TestCase; public class TestAverageLatencyAlertMonitor extends TestCase { private EPRuntime runtime; public void setUp() { // This code runs as part of the automated regression test suite; Therefore disable internal timer theading to safe resources Configuration config = new Configuration(); config.getEngineDefaults().getThreading().setInternalTimerEnabled(false); AverageLatencyMonitor.start(); runtime = EPServiceProviderManager.getDefaultProvider(config).getEPRuntime(); } public void testLatencyAlert() { String services[] = {"s0", "s1", "s2"}; String customers[] = {"c0", "c1", "c2"}; for (int i = 0; i < 100; i++) { for (int index = 0; index < services.length; index++) { OperationMeasurement measurement = new OperationMeasurement(services[index], customers[index], 9950 + i, true); runtime.sendEvent(measurement); } } // This should generate an alert OperationMeasurement measurement = new OperationMeasurement(services[0], customers[0], 10000, true); runtime.sendEvent(measurement); // This should generate an alert measurement = new OperationMeasurement(services[1], customers[1], 10001, true); runtime.sendEvent(measurement); // This should not generate an alert measurement = new OperationMeasurement(services[2], customers[2], 9999, true); runtime.sendEvent(measurement); } }