private void runAssertionCaseDynamic(EPServiceProvider epService) throws Exception { // type resolved for each by the first event representation picking both up, i.e. the one with // "r2" since that is the most specific URI EPStatement stmt = epService.getEPAdministrator().createEPL("select * from TestTypeOne"); stmt.addListener(listeners[0]); stmt = epService.getEPAdministrator().createEPL("select * from TestTypeTwo"); stmt.addListener(listeners[1]); // static senders EventSender sender = epService.getEPRuntime().getEventSender("TestTypeOne"); sender.sendEvent(makeProperties(new String[][] {{"r2", "A"}})); EPAssertionUtil.assertAllPropsSortedByName( listeners[0].assertOneGetNewAndReset(), new Object[] {"A"}); assertFalse(listeners[0].isInvoked()); sender = epService.getEPRuntime().getEventSender("TestTypeTwo"); sender.sendEvent(makeProperties(new String[][] {{"r2", "B"}})); EPAssertionUtil.assertAllPropsSortedByName( listeners[1].assertOneGetNewAndReset(), new Object[] {"B"}); }
private void runAssertionCaseStatic(EPServiceProvider epService) throws URISyntaxException { EPStatement stmt = epService.getEPAdministrator().createEPL("select * from TestTypeOne"); stmt.addListener(listeners[0]); stmt = epService.getEPAdministrator().createEPL("select * from TestTypeTwo"); stmt.addListener(listeners[1]); stmt = epService.getEPAdministrator().createEPL("select * from TestTypeThree"); stmt.addListener(listeners[2]); stmt = epService.getEPAdministrator().createEPL("select * from TestTypeFour"); stmt.addListener(listeners[3]); // static senders EventSender sender = epService.getEPRuntime().getEventSender("TestTypeOne"); sender.sendEvent(makeProperties(new String[][] {{"r1", "A"}, {"t1", "B"}})); EPAssertionUtil.assertAllPropsSortedByName( listeners[0].assertOneGetNewAndReset(), new Object[] {"A", "B"}); assertFalse(listeners[3].isInvoked() || listeners[1].isInvoked() || listeners[2].isInvoked()); sender = epService.getEPRuntime().getEventSender("TestTypeTwo"); sender.sendEvent(makeProperties(new String[][] {{"r2", "C"}, {"t2", "D"}})); EPAssertionUtil.assertAllPropsSortedByName( listeners[1].assertOneGetNewAndReset(), new Object[] {"C", "D"}); assertFalse(listeners[3].isInvoked() || listeners[0].isInvoked() || listeners[2].isInvoked()); sender = epService.getEPRuntime().getEventSender("TestTypeThree"); sender.sendEvent(makeProperties(new String[][] {{"r3", "E"}, {"t3", "F"}})); EPAssertionUtil.assertAllPropsSortedByName( listeners[2].assertOneGetNewAndReset(), new Object[] {"E", "F"}); assertFalse(listeners[3].isInvoked() || listeners[1].isInvoked() || listeners[0].isInvoked()); sender = epService.getEPRuntime().getEventSender("TestTypeFour"); sender.sendEvent(makeProperties(new String[][] {{"r2", "G"}, {"t4", "H"}})); EPAssertionUtil.assertAllPropsSortedByName( listeners[3].assertOneGetNewAndReset(), new Object[] {"G", "H"}); assertFalse(listeners[0].isInvoked() || listeners[1].isInvoked() || listeners[2].isInvoked()); // dynamic sender - decides on event type thus a particular update listener should see the event URI[] uriList = new URI[] {new URI("type://properties/test1"), new URI("type://properties/test2")}; EventSender dynamicSender = epService.getEPRuntime().getEventSender(uriList); dynamicSender.sendEvent(makeProperties(new String[][] {{"r3", "I"}, {"t3", "J"}})); EPAssertionUtil.assertAllPropsSortedByName( listeners[2].assertOneGetNewAndReset(), new Object[] {"I", "J"}); dynamicSender.sendEvent(makeProperties(new String[][] {{"r1", "K"}, {"t1", "L"}})); EPAssertionUtil.assertAllPropsSortedByName( listeners[0].assertOneGetNewAndReset(), new Object[] {"K", "L"}); dynamicSender.sendEvent(makeProperties(new String[][] {{"r2", "M"}, {"t2", "N"}})); EPAssertionUtil.assertAllPropsSortedByName( listeners[1].assertOneGetNewAndReset(), new Object[] {"M", "N"}); dynamicSender.sendEvent(makeProperties(new String[][] {{"r2", "O"}, {"t4", "P"}})); EPAssertionUtil.assertAllPropsSortedByName( listeners[3].assertOneGetNewAndReset(), new Object[] {"O", "P"}); dynamicSender.sendEvent(makeProperties(new String[][] {{"r2", "O"}, {"t3", "P"}})); assertNoneReceived(); uriList = new URI[] {new URI("type://properties/test2")}; dynamicSender = epService.getEPRuntime().getEventSender(uriList); dynamicSender.sendEvent(makeProperties(new String[][] {{"r1", "I"}, {"t1", "J"}})); assertNoneReceived(); dynamicSender.sendEvent(makeProperties(new String[][] {{"r2", "Q"}, {"t2", "R"}})); EPAssertionUtil.assertAllPropsSortedByName( listeners[1].assertOneGetNewAndReset(), new Object[] {"Q", "R"}); }