use of org.wso2.charon3.core.objects.Group in project siddhi by wso2.
the class AggregationTestCase method incrementalStreamProcessorTest25.
@Test(dependsOnMethods = { "incrementalStreamProcessorTest24" })
public void incrementalStreamProcessorTest25() throws InterruptedException {
LOG.info("incrementalStreamProcessorTest25");
SiddhiManager siddhiManager = new SiddhiManager();
String stockStream = "define stream stockStream (symbol string, price float, lastClosingPrice float, volume long , " + "quantity int, timestamp long);";
String query = " define aggregation stockAggregation " + "from stockStream " + "select symbol, avg(price) as avgPrice, sum(price) as totalPrice, (price * quantity) " + "as lastTradeValue " + "group by symbol " + "aggregate by timestamp every sec...hour ;";
SiddhiAppRuntime siddhiAppRuntime = siddhiManager.createSiddhiAppRuntime(stockStream + query);
InputHandler stockStreamInputHandler = siddhiAppRuntime.getInputHandler("stockStream");
siddhiAppRuntime.start();
stockStreamInputHandler.send(new Object[] { "WSO2", 50f, 60f, 90L, 6, 1496289950000L });
stockStreamInputHandler.send(new Object[] { "WSO2", 70f, null, 40L, 10, 1496289950000L });
stockStreamInputHandler.send(new Object[] { "WSO2", 60f, 44f, 200L, 56, 1496289952000L });
stockStreamInputHandler.send(new Object[] { "WSO2", 100f, null, 200L, 16, 1496289952000L });
stockStreamInputHandler.send(new Object[] { "IBM", 100f, null, 200L, 26, 1496289954000L });
stockStreamInputHandler.send(new Object[] { "IBM", 100f, null, 200L, 96, 1496289954000L });
Thread.sleep(100);
Event[] events = siddhiAppRuntime.query("from stockAggregation " + "within \"2017-06-** **:**:**\" " + "per \"seconds\" " + "select * " + "order by AGG_TIMESTAMP ;");
EventPrinter.print(events);
AssertJUnit.assertEquals(3, events.length);
for (int i = 0; i < events.length; i++) {
switch(i) {
case 0:
AssertJUnit.assertArrayEquals(new Object[] { 1496289950000L, "WSO2", 60.0, 120.0, 700f }, events[i].getData());
break;
case 1:
AssertJUnit.assertArrayEquals(new Object[] { 1496289952000L, "WSO2", 80.0, 160.0, 1600f }, events[i].getData());
break;
case 3:
AssertJUnit.assertArrayEquals(new Object[] { 1496289954000L, "IBM", 100.0, 200.0, 9600f }, events[i].getData());
break;
default:
AssertJUnit.assertEquals(3, events.length);
}
}
Thread.sleep(100);
siddhiAppRuntime.shutdown();
}
use of org.wso2.charon3.core.objects.Group in project siddhi by wso2.
the class ExtensionTestCase method extensionTest3.
@Test
public void extensionTest3() throws InterruptedException {
log.info("extension test3");
SiddhiManager siddhiManager = new SiddhiManager();
siddhiManager.setExtension("custom:plus", CustomFunctionExtension.class);
siddhiManager.setExtension("email:getAllNew", StringConcatAggregatorString.class);
String cseEventStream = "" + "" + "define stream cseEventStream (symbol string, price float, volume long);";
String query = ("" + "@info(name = 'query1') " + "from cseEventStream " + "select price , email:getAllNew(symbol,'') as toConcat " + "group by volume " + "insert into mailOutput;");
SiddhiAppRuntime siddhiAppRuntime = siddhiManager.createSiddhiAppRuntime(cseEventStream + query);
siddhiAppRuntime.addCallback("query1", new QueryCallback() {
@Override
public void receive(long timestamp, Event[] inEvents, Event[] removeEvents) {
EventPrinter.print(timestamp, inEvents, removeEvents);
count = count + inEvents.length;
if (count == 3) {
AssertJUnit.assertEquals("WSO2ABC", inEvents[inEvents.length - 1].getData(1));
}
eventArrived = true;
}
});
InputHandler inputHandler = siddhiAppRuntime.getInputHandler("cseEventStream");
siddhiAppRuntime.start();
inputHandler.send(new Object[] { "IBM", 700f, 100L });
Thread.sleep(100);
inputHandler.send(new Object[] { "WSO2", 60.5f, 200L });
Thread.sleep(100);
inputHandler.send(new Object[] { "ABC", 60.5f, 200L });
Thread.sleep(100);
AssertJUnit.assertEquals(3, count);
AssertJUnit.assertTrue(eventArrived);
siddhiAppRuntime.shutdown();
}
use of org.wso2.charon3.core.objects.Group in project siddhi by wso2.
the class EventOutputRateLimitTestCase method testEventOutputRateLimitQuery11.
@Test
public void testEventOutputRateLimitQuery11() throws InterruptedException {
log.info("EventOutputRateLimit test11");
SiddhiManager siddhiManager = new SiddhiManager();
String siddhiApp = "" + "@app:name('EventOutputRateLimitTest9') " + "" + "define stream LoginEvents (timestamp long, ip string);" + "" + "@info(name = 'query1') " + "from LoginEvents " + "select ip " + "group by ip " + "output last every 5 events " + "insert into uniqueIps ;";
SiddhiAppRuntime siddhiAppRuntime = siddhiManager.createSiddhiAppRuntime(siddhiApp);
log.info("Running : " + siddhiAppRuntime.getName());
siddhiAppRuntime.addCallback("query1", new QueryCallback() {
@Override
public void receive(long timestamp, Event[] inEvents, Event[] removeEvents) {
EventPrinter.print(timestamp, inEvents, removeEvents);
if (inEvents != null) {
count += inEvents.length;
} else {
AssertJUnit.fail("Remove events emitted");
}
eventArrived = true;
}
});
InputHandler inputHandler = siddhiAppRuntime.getInputHandler("LoginEvents");
siddhiAppRuntime.start();
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.5" });
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.5" });
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.3" });
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.9" });
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.4" });
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.4" });
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.4" });
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.30" });
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.3" });
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.30" });
Thread.sleep(1000);
AssertJUnit.assertEquals("Event arrived", true, eventArrived);
AssertJUnit.assertEquals("Number of output event value", 7, count);
siddhiAppRuntime.shutdown();
}
use of org.wso2.charon3.core.objects.Group in project siddhi by wso2.
the class SnapshotOutputRateLimitTestCase method testSnapshotOutputRateLimitQuery25.
@Test(dependsOnMethods = { "testSnapshotOutputRateLimitQuery24" })
public void testSnapshotOutputRateLimitQuery25() throws InterruptedException {
log.info("SnapshotOutputRateLimit test25");
SiddhiManager siddhiManager = new SiddhiManager();
String siddhiApp = "" + "@app:name('SnapshotOutputRateLimitTest23') " + "" + "define stream LoginEvents (timestamp long, ip string, calls int);" + "" + "@info(name = 'query1') " + "from LoginEvents#window.lengthBatch(3) " + "select sum(calls) as totalCalls " + "group by ip " + "output snapshot every 1 sec " + "insert all events into uniqueIps ;";
SiddhiAppRuntime siddhiAppRuntime = siddhiManager.createSiddhiAppRuntime(siddhiApp);
log.info("Running : " + siddhiAppRuntime.getName());
siddhiAppRuntime.addCallback("query1", new QueryCallback() {
@Override
public void receive(long timestamp, Event[] inEvents, Event[] removeEvents) {
EventPrinter.print(timestamp, inEvents, removeEvents);
eventArrived = true;
count.incrementAndGet();
for (Event inEvent : inEvents) {
value++;
if (value == 1) {
AssertJUnit.assertEquals((Long) 1L, inEvent.getData(0));
} else if (value == 2) {
AssertJUnit.assertEquals((Long) 1L, inEvent.getData(0));
} else if (value == 3) {
AssertJUnit.assertEquals((Long) 2L, inEvent.getData(0));
}
}
}
});
InputHandler inputHandler = siddhiAppRuntime.getInputHandler("LoginEvents");
siddhiAppRuntime.start();
Thread.sleep(100);
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.5", 3 });
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.3", 6 });
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.4", 2 });
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.5", 1 });
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.6", 1 });
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.7", 2 });
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.8", 10 });
Thread.sleep(1200);
AssertJUnit.assertEquals("Event arrived", true, eventArrived);
AssertJUnit.assertEquals("Number of output event bundles", 1, count.get());
AssertJUnit.assertEquals("Number of output events", 3, value);
siddhiAppRuntime.shutdown();
Thread.sleep(2000);
}
use of org.wso2.charon3.core.objects.Group in project siddhi by wso2.
the class SnapshotOutputRateLimitTestCase method testSnapshotOutputRateLimitQuery21.
@Test(dependsOnMethods = { "testSnapshotOutputRateLimitQuery20" })
public void testSnapshotOutputRateLimitQuery21() throws InterruptedException {
log.info("SnapshotOutputRateLimit test21");
SiddhiManager siddhiManager = new SiddhiManager();
String siddhiApp = "" + "@app:name('SnapshotOutputRateLimitTest21') " + "" + "define stream LoginEvents (timestamp long, ip string, calls int);" + "" + "@info(name = 'query1') " + "from LoginEvents#window.time(1 sec) " + "select ip, sum(calls) as totalCalls " + "group by ip " + "output snapshot every 1 sec " + "insert all events into uniqueIps ;";
SiddhiAppRuntime siddhiAppRuntime = siddhiManager.createSiddhiAppRuntime(siddhiApp);
log.info("Running : " + siddhiAppRuntime.getName());
siddhiAppRuntime.addCallback("query1", new QueryCallback() {
@Override
public void receive(long timestamp, Event[] inEvents, Event[] removeEvents) {
EventPrinter.print(timestamp, inEvents, removeEvents);
eventArrived = true;
count.incrementAndGet();
if (count.get() == 2) {
AssertJUnit.assertTrue((Long) inEvents[0].getData(1) == 3L && (Long) inEvents[1].getData(1) == 6L);
} else if (count.get() == 4) {
AssertJUnit.assertTrue((Long) inEvents[0].getData(1) == 2L && (Long) inEvents[1].getData(1) == 10L);
}
if (inEvents != null) {
value += inEvents.length;
}
}
});
InputHandler inputHandler = siddhiAppRuntime.getInputHandler("LoginEvents");
siddhiAppRuntime.start();
Thread.sleep(1100);
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.5", 3 });
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.3", 6 });
Thread.sleep(2200);
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.5", 2 });
inputHandler.send(new Object[] { System.currentTimeMillis(), "192.10.1.3", 10 });
Thread.sleep(1200);
AssertJUnit.assertEquals("Event arrived", true, eventArrived);
AssertJUnit.assertEquals("Number of output event bundles", 4, count.get());
AssertJUnit.assertEquals("Number of output events", 4, value);
siddhiAppRuntime.shutdown();
Thread.sleep(2000);
}
Aggregations