private void runAssertMultiRowUnfiltered(String stmtText, String columnName) {
    EPStatement stmt = epService.getEPAdministrator().createEPL(stmtText);
    stmt.addListener(listener);

    // check type
    assertEquals(Integer.class, stmt.getEventType().getPropertyType(columnName));

    // test no event, should return null
    epService.getEPRuntime().sendEvent(new SupportBean_S0(0));
    assertEquals(null, listener.assertOneGetNewAndReset().get(columnName));

    // test one event
    epService.getEPRuntime().sendEvent(new SupportBean_S1(10));
    epService.getEPRuntime().sendEvent(new SupportBean_S0(1));
    assertEquals(10, listener.assertOneGetNewAndReset().get(columnName));

    // resend event
    epService.getEPRuntime().sendEvent(new SupportBean_S0(2));
    assertEquals(10, listener.assertOneGetNewAndReset().get(columnName));

    // test second event
    epService.getEPRuntime().sendEvent(new SupportBean_S1(999));
    epService.getEPRuntime().sendEvent(new SupportBean_S0(3));
    assertEquals(null, listener.assertOneGetNewAndReset().get(columnName));
  }
  public void testCustomFunction() {
    String stmtText =
        "select (select "
            + SupportStaticMethodLib.class.getName()
            + ".minusOne(id) from S1.win:length(1000)) as idS1 from S0";

    EPStatement stmt = epService.getEPAdministrator().createEPL(stmtText);
    stmt.addListener(listener);

    // check type
    assertEquals(Double.class, stmt.getEventType().getPropertyType("idS1"));

    // test no event, should return null
    epService.getEPRuntime().sendEvent(new SupportBean_S0(0));
    assertEquals(null, listener.assertOneGetNewAndReset().get("idS1"));

    // test one event
    epService.getEPRuntime().sendEvent(new SupportBean_S1(10));
    epService.getEPRuntime().sendEvent(new SupportBean_S0(1));
    assertEquals(9d, listener.assertOneGetNewAndReset().get("idS1"));

    // resend event
    epService.getEPRuntime().sendEvent(new SupportBean_S0(2));
    assertEquals(9d, listener.assertOneGetNewAndReset().get("idS1"));
  }
  public void testStartStopStatement() {
    String stmtText = "select id from S0 where (select true from S1.win:length(1000))";

    EPStatement stmt = epService.getEPAdministrator().createEPL(stmtText);
    stmt.addListener(listener);

    epService.getEPRuntime().sendEvent(new SupportBean_S0(2));
    assertFalse(listener.isInvoked());

    epService.getEPRuntime().sendEvent(new SupportBean_S1(10));
    epService.getEPRuntime().sendEvent(new SupportBean_S0(2));
    assertEquals(2, listener.assertOneGetNewAndReset().get("id"));

    stmt.stop();
    epService.getEPRuntime().sendEvent(new SupportBean_S0(2));
    assertFalse(listener.isInvoked());

    stmt.start();
    epService.getEPRuntime().sendEvent(new SupportBean_S0(2));
    assertFalse(listener.isInvoked());

    epService.getEPRuntime().sendEvent(new SupportBean_S1(10));
    epService.getEPRuntime().sendEvent(new SupportBean_S0(3));
    assertEquals(3, listener.assertOneGetNewAndReset().get("id"));
  }
示例#4
0
  public void testEqualsAllArray() {
    String[] fields = "e,ne".split(",");
    String stmtText =
        "select "
            + "longBoxed = all ({1, 1}, intArr, longCol) as e, "
            + "longBoxed != all ({1, 1}, intArr, longCol) as ne "
            + "from ArrayBean";
    EPStatement stmt = epService.getEPAdministrator().createEPL(stmtText);
    stmt.addListener(listener);

    SupportBeanArrayCollMap arrayBean = new SupportBeanArrayCollMap(new int[] {1, 1});
    arrayBean.setLongCol(Arrays.asList(1L, 1L));
    arrayBean.setLongBoxed(1L);
    epService.getEPRuntime().sendEvent(arrayBean);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {true, false});

    arrayBean.setIntArr(new int[] {1, 1, 0});
    epService.getEPRuntime().sendEvent(arrayBean);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {false, false});

    arrayBean.setLongBoxed(2L);
    epService.getEPRuntime().sendEvent(arrayBean);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {false, true});
  }
示例#5
0
  private void runAssertion(long timestamp) {
    String[] fields = "engineURI,statementName".split(",");

    assertEquals(4, listener.getNewDataList().size());
    EventBean[] received = listener.getNewDataListFlattened();

    ArrayAssertionUtil.assertProps(received[0], fields, new Object[] {"MyURI", "cpuStmtOne"});
    ArrayAssertionUtil.assertProps(received[1], fields, new Object[] {"MyURI", "cpuStmtTwo"});
    ArrayAssertionUtil.assertProps(received[2], fields, new Object[] {"MyURI", "wallStmtThree"});
    ArrayAssertionUtil.assertProps(received[3], fields, new Object[] {"MyURI", "wallStmtFour"});

    long cpuOne = (Long) received[0].get("cpuTime");
    long cpuTwo = (Long) received[1].get("cpuTime");
    long wallOne = (Long) received[2].get("wallTime");
    long wallTwo = (Long) received[3].get("wallTime");

    assertTrue("cpuOne=" + cpuOne, cpuOne > cpuGoalOneNano);
    assertTrue("cpuTwo=" + cpuTwo, cpuTwo > cpuGoalTwoNano);
    assertTrue("wallOne=" + wallOne, (wallOne + 50) > wallGoalOneMsec);
    assertTrue("wallTwo=" + wallTwo, (wallTwo + 50) > wallGoalTwoMsec);

    for (int i = 0; i < 4; i++) {
      assertEquals(1L, received[i].get("numOutputIStream"));
      assertEquals(0L, received[i].get("numOutputRStream"));
      assertEquals(timestamp, received[i].get("timestamp"));
    }

    listener.reset();
  }
示例#6
0
  public void testEngineMetrics() {
    epService = EPServiceProviderManager.getProvider("MyURI", getConfig(10000, -1, true));
    epService.initialize();

    String[] engineFields =
        "engineURI,timestamp,inputCount,inputCountDelta,scheduleDepth".split(",");
    sendTimer(1000);

    String text = "select * from " + EngineMetric.class.getName();
    EPStatement stmt = epService.getEPAdministrator().createEPL(text);
    stmt.addListener(listener);

    epService.getEPRuntime().sendEvent(new SupportBean());

    sendTimer(10999);
    assertFalse(listener.isInvoked());

    epService.getEPAdministrator().createEPL("select * from pattern[timer:interval(5 sec)]");

    sendTimer(11000);
    EventBean event = listener.assertOneGetNewAndReset();
    ArrayAssertionUtil.assertProps(event, engineFields, new Object[] {"MyURI", 11000L, 1L, 1L, 1L});

    epService.getEPRuntime().sendEvent(new SupportBean());
    epService.getEPRuntime().sendEvent(new SupportBean());

    sendTimer(20000);
    sendTimer(21000);
    event = listener.assertOneGetNewAndReset();
    ArrayAssertionUtil.assertProps(event, engineFields, new Object[] {"MyURI", 21000L, 4L, 3L, 0L});
  }
  private void runAssertionSingleMethod() {
    String fields[] = new String[] {"val"};
    epService.getEPRuntime().sendEvent(new SupportBean("a", 2));
    ArrayAssertionUtil.assertProps(listener.assertOneGetNewAndReset(), fields, new Object[] {8});

    listener.reset();
  }
示例#8
0
 private void assertConcat(String c1, String c2, String c3) {
   EventBean event = testListener.getLastNewData()[0];
   assertEquals(c1, event.get("c1"));
   assertEquals(c2, event.get("c2"));
   assertEquals(c3, event.get("c3"));
   testListener.reset();
 }
示例#9
0
  public void testRelationalOpNullOrNoRows() {
    // test array
    String[] fields = "vall,vany".split(",");
    String stmtText =
        "select "
            + "intBoxed >= all ({doubleBoxed, longBoxed}) as vall, "
            + "intBoxed >= any ({doubleBoxed, longBoxed}) as vany "
            + " from SupportBean(string like 'E%')";
    EPStatement stmt = epService.getEPAdministrator().createEPL(stmtText);
    stmt.addListener(listener);

    sendEvent("E3", null, null, null);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {null, null});
    sendEvent("E4", 1, null, null);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {null, null});

    sendEvent("E5", null, 1d, null);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {null, null});
    sendEvent("E6", 1, 1d, null);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {null, true});
    sendEvent("E7", 0, 1d, null);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {false, false});

    // test fields
    stmt.destroy();
    fields = "vall,vany".split(",");
    stmtText =
        "select "
            + "intBoxed >= all (doubleBoxed, longBoxed) as vall, "
            + "intBoxed >= any (doubleBoxed, longBoxed) as vany "
            + " from SupportBean(string like 'E%')";
    stmt = epService.getEPAdministrator().createEPL(stmtText);
    stmt.addListener(listener);

    sendEvent("E3", null, null, null);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {null, null});
    sendEvent("E4", 1, null, null);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {null, null});

    sendEvent("E5", null, 1d, null);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {null, null});
    sendEvent("E6", 1, 1d, null);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {null, true});
    sendEvent("E7", 0, 1d, null);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {false, false});
  }
示例#10
0
  public void testEnabledDisableRuntime() {
    EPStatement[] statements = new EPStatement[5];
    Configuration config = getConfig(10000, 10000, true);
    epService = EPServiceProviderManager.getProvider("MyURI", config);
    epService.initialize();

    sendTimer(1000);

    statements[0] =
        epService
            .getEPAdministrator()
            .createEPL("select * from " + StatementMetric.class.getName(), "stmtmetric");
    statements[0].addListener(listenerStmtMetric);

    statements[1] =
        epService
            .getEPAdministrator()
            .createEPL("select * from " + EngineMetric.class.getName(), "enginemetric");
    statements[1].addListener(listenerEngineMetric);

    statements[2] =
        epService
            .getEPAdministrator()
            .createEPL(
                "select * from SupportBean(intPrimitive=1).win:keepall() where MyMetricFunctions.takeCPUTime(longPrimitive)");
    sendEvent("E1", 1, cpuGoalOneNano);

    sendTimer(11000);
    assertTrue(listenerStmtMetric.getAndClearIsInvoked());
    assertTrue(listenerEngineMetric.getAndClearIsInvoked());

    epService.getEPAdministrator().getConfiguration().setMetricsReportingDisabled();
    sendEvent("E2", 2, cpuGoalOneNano);
    sendTimer(21000);
    assertFalse(listenerStmtMetric.getAndClearIsInvoked());
    assertFalse(listenerEngineMetric.getAndClearIsInvoked());

    sendTimer(31000);
    sendEvent("E3", 3, cpuGoalOneNano);
    assertFalse(listenerStmtMetric.getAndClearIsInvoked());
    assertFalse(listenerEngineMetric.getAndClearIsInvoked());

    epService.getEPAdministrator().getConfiguration().setMetricsReportingEnabled();
    sendEvent("E4", 4, cpuGoalOneNano);
    sendTimer(41000);
    assertTrue(listenerStmtMetric.getAndClearIsInvoked());
    assertTrue(listenerEngineMetric.getAndClearIsInvoked());

    statements[2].destroy();
    sendTimer(51000);
    assertTrue(listenerStmtMetric.isInvoked()); // metrics statements reported themselves
    assertTrue(listenerEngineMetric.isInvoked());
  }
示例#11
0
  public void testJoinUnfiltered() {
    String stmtText =
        "select (select id from S3.win:length(1000)) as idS3, (select id from S4.win:length(1000)) as idS4 from S0.win:keepall() as s0, S1.win:keepall() as s1 where s0.id = s1.id";

    EPStatement stmt = epService.getEPAdministrator().createEPL(stmtText);
    stmt.addListener(listener);

    // check type
    assertEquals(Integer.class, stmt.getEventType().getPropertyType("idS3"));
    assertEquals(Integer.class, stmt.getEventType().getPropertyType("idS4"));

    // test no event, should return null
    epService.getEPRuntime().sendEvent(new SupportBean_S0(0));
    epService.getEPRuntime().sendEvent(new SupportBean_S1(0));
    EventBean event = listener.assertOneGetNewAndReset();
    assertEquals(null, event.get("idS3"));
    assertEquals(null, event.get("idS4"));

    // send one event
    epService.getEPRuntime().sendEvent(new SupportBean_S3(-1));
    epService.getEPRuntime().sendEvent(new SupportBean_S0(1));
    epService.getEPRuntime().sendEvent(new SupportBean_S1(1));
    event = listener.assertOneGetNewAndReset();
    assertEquals(-1, event.get("idS3"));
    assertEquals(null, event.get("idS4"));

    // send one event
    epService.getEPRuntime().sendEvent(new SupportBean_S4(-2));
    epService.getEPRuntime().sendEvent(new SupportBean_S0(2));
    epService.getEPRuntime().sendEvent(new SupportBean_S1(2));
    event = listener.assertOneGetNewAndReset();
    assertEquals(-1, event.get("idS3"));
    assertEquals(-2, event.get("idS4"));

    // send second event
    epService.getEPRuntime().sendEvent(new SupportBean_S4(-2));
    epService.getEPRuntime().sendEvent(new SupportBean_S0(3));
    epService.getEPRuntime().sendEvent(new SupportBean_S1(3));
    event = listener.assertOneGetNewAndReset();
    assertEquals(-1, event.get("idS3"));
    assertEquals(null, event.get("idS4"));

    epService.getEPRuntime().sendEvent(new SupportBean_S3(-2));
    epService.getEPRuntime().sendEvent(new SupportBean_S0(3));
    epService.getEPRuntime().sendEvent(new SupportBean_S1(3));
    EventBean[] events = listener.getNewDataListFlattened();
    assertEquals(3, events.length);
    for (int i = 0; i < events.length; i++) {
      assertEquals(null, events[i].get("idS3"));
      assertEquals(null, events[i].get("idS4"));
    }
  }
示例#12
0
  public void testWhereClauseWithExpression() {
    String stmtText = "select id from S0 where (select p10='X' from S1.win:length(1000))";

    EPStatement stmt = epService.getEPAdministrator().createEPL(stmtText);
    stmt.addListener(listener);

    epService.getEPRuntime().sendEvent(new SupportBean_S0(0));
    assertFalse(listener.isInvoked());

    epService.getEPRuntime().sendEvent(new SupportBean_S1(10, "X"));
    epService.getEPRuntime().sendEvent(new SupportBean_S0(0));
    assertEquals(0, listener.assertOneGetNewAndReset().get("id"));
  }
示例#13
0
  private void runCoalesceLong() {
    sendEvent(1L, 2, (short) 3);
    assertEquals(1L, testListener.assertOneGetNewAndReset().get("result"));

    sendBoxedEvent(null, 2, null);
    assertEquals(2L, testListener.assertOneGetNewAndReset().get("result"));

    sendBoxedEvent(null, null, Short.parseShort("3"));
    assertEquals(3L, testListener.assertOneGetNewAndReset().get("result"));

    sendBoxedEvent(null, null, null);
    assertEquals(null, testListener.assertOneGetNewAndReset().get("result"));
  }
示例#14
0
  public void testRelationalOpAllArray() {
    String[] fields = "g,ge".split(",");
    String stmtText =
        "select "
            + "longBoxed > all ({1, 2}, intArr, intCol) as g, "
            + "longBoxed >= all ({1, 2}, intArr, intCol) as ge "
            + "from ArrayBean";
    EPStatement stmt = epService.getEPAdministrator().createEPL(stmtText);
    stmt.addListener(listener);

    SupportBeanArrayCollMap arrayBean = new SupportBeanArrayCollMap(new int[] {1, 2});
    arrayBean.setIntCol(Arrays.asList(1, 2));
    arrayBean.setLongBoxed(3L);
    epService.getEPRuntime().sendEvent(arrayBean);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {true, true});

    arrayBean.setLongBoxed(2L);
    epService.getEPRuntime().sendEvent(arrayBean);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {false, true});

    arrayBean = new SupportBeanArrayCollMap(new int[] {1, 3});
    arrayBean.setIntCol(Arrays.asList(1, 2));
    arrayBean.setLongBoxed(3L);
    epService.getEPRuntime().sendEvent(arrayBean);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {false, true});

    arrayBean = new SupportBeanArrayCollMap(new int[] {1, 2});
    arrayBean.setIntCol(Arrays.asList(1, 3));
    arrayBean.setLongBoxed(3L);
    epService.getEPRuntime().sendEvent(arrayBean);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {false, true});

    // test OM
    stmt.destroy();
    EPStatementObjectModel model = epService.getEPAdministrator().compileEPL(stmtText);
    assertEquals(stmtText.replace("<>", "!="), model.toEPL());
    stmt = epService.getEPAdministrator().create(model);
    stmt.addListener(listener);

    arrayBean = new SupportBeanArrayCollMap(new int[] {1, 2});
    arrayBean.setIntCol(Arrays.asList(1, 2));
    arrayBean.setLongBoxed(3L);
    epService.getEPRuntime().sendEvent(arrayBean);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {true, true});
  }
示例#15
0
  public void testFilterInside() {
    String stmtText = "select (select id from S1(p10='A').win:length(1000)) as idS1 from S0";

    EPStatement stmt = epService.getEPAdministrator().createEPL(stmtText);
    stmt.addListener(listener);

    epService.getEPRuntime().sendEvent(new SupportBean_S1(1, "X"));
    epService.getEPRuntime().sendEvent(new SupportBean_S0(1));
    assertEquals(null, listener.assertOneGetNewAndReset().get("idS1"));

    epService.getEPRuntime().sendEvent(new SupportBean_S1(1, "A"));
    epService.getEPRuntime().sendEvent(new SupportBean_S0(1));
    assertEquals(1, listener.assertOneGetNewAndReset().get("idS1"));
  }
示例#16
0
  public void testEqualsAll() {
    String[] fields = "eq,neq,sqlneq,nneq".split(",");
    String stmtText =
        "select "
            + "intPrimitive = all (1, intBoxed) as eq, "
            + "intPrimitive != all (1, intBoxed) as neq, "
            + "intPrimitive <> all (1, intBoxed) as sqlneq, "
            + "not intPrimitive = all (1, intBoxed) as nneq "
            + "from SupportBean(string like \"E%\")";
    EPStatement stmt = epService.getEPAdministrator().createEPL(stmtText);
    stmt.addListener(listener);

    // in the format intPrimitive, intBoxed
    int[][] testdata = {
      {1, 1},
      {1, 2},
      {2, 2},
      {2, 1},
    };

    Object[][] result = {
      {true, false, false, false}, // 1, 1
      {false, false, false, true}, // 1, 2
      {false, false, false, true}, // 2, 2
      {false, true, true, true} // 2, 1
    };

    for (int i = 0; i < testdata.length; i++) {
      SupportBean bean = new SupportBean("E", testdata[i][0]);
      bean.setIntBoxed(testdata[i][1]);
      epService.getEPRuntime().sendEvent(bean);
      // System.out.println("line " + i);
      ArrayAssertionUtil.assertProps(listener.assertOneGetNewAndReset(), fields, result[i]);
    }

    // test OM
    stmt.destroy();
    EPStatementObjectModel model = epService.getEPAdministrator().compileEPL(stmtText);
    assertEquals(stmtText.replace("<>", "!="), model.toEPL());
    stmt = epService.getEPAdministrator().create(model);
    stmt.addListener(listener);

    for (int i = 0; i < testdata.length; i++) {
      SupportBean bean = new SupportBean("E", testdata[i][0]);
      bean.setIntBoxed(testdata[i][1]);
      epService.getEPRuntime().sendEvent(bean);
      // System.out.println("line " + i);
      ArrayAssertionUtil.assertProps(listener.assertOneGetNewAndReset(), fields, result[i]);
    }
  }
示例#17
0
  public void testSelfSubselect() {
    String stmtTextOne = "insert into MyCount select count(*) as cnt from S0";
    epService.getEPAdministrator().createEPL(stmtTextOne);

    String stmtTextTwo = "select (select cnt from MyCount.std:lastevent()) as value from S0";
    EPStatement stmt = epService.getEPAdministrator().createEPL(stmtTextTwo);
    stmt.addListener(listener);

    epService.getEPRuntime().sendEvent(new SupportBean_S0(1));
    assertEquals(null, listener.assertOneGetNewAndReset().get("value"));

    epService.getEPRuntime().sendEvent(new SupportBean_S0(2));
    assertEquals(1L, listener.assertOneGetNewAndReset().get("value"));
  }
示例#18
0
  private void runMinMaxWindowStats() {
    sendEvent(10, 20, (short) 4);
    EventBean received = testListener.getAndResetLastNewData()[0];
    assertEquals(20L, received.get("myMax"));
    assertEquals(10L, received.get("myMin"));
    assertEquals(4L, received.get("myMinEx"));
    assertEquals(20L, received.get("myMaxEx"));

    sendEvent(-10, -20, (short) -30);
    received = testListener.getAndResetLastNewData()[0];
    assertEquals(-10L, received.get("myMax"));
    assertEquals(-20L, received.get("myMin"));
    assertEquals(-30L, received.get("myMinEx"));
    assertEquals(-10L, received.get("myMaxEx"));
  }
示例#19
0
  private void tryCoalesceBeans(String viewExpr) {
    epService.initialize();
    selectTestView = epService.getEPAdministrator().createEPL(viewExpr);
    selectTestView.addListener(testListener);

    SupportBean event = sendEvent("s0");
    EventBean eventReceived = testListener.assertOneGetNewAndReset();
    assertEquals("s0", eventReceived.get("myString"));
    assertSame(event, eventReceived.get("myBean"));

    event = sendEvent("s1");
    eventReceived = testListener.assertOneGetNewAndReset();
    assertEquals("s1", eventReceived.get("myString"));
    assertSame(event, eventReceived.get("myBean"));
  }
示例#20
0
  public void testCoalesceLong() {
    setupCoalesce("coalesce(longBoxed, intBoxed, shortBoxed)");
    assertEquals(Long.class, selectTestView.getEventType().getPropertyType("result"));

    sendEvent(1L, 2, (short) 3);
    assertEquals(1L, testListener.assertOneGetNewAndReset().get("result"));

    sendBoxedEvent(null, 2, null);
    assertEquals(2L, testListener.assertOneGetNewAndReset().get("result"));

    sendBoxedEvent(null, null, Short.parseShort("3"));
    assertEquals(3L, testListener.assertOneGetNewAndReset().get("result"));

    sendBoxedEvent(null, null, null);
    assertEquals(null, testListener.assertOneGetNewAndReset().get("result"));
  }
示例#21
0
  public void testRelationalOpAny() {
    String[] fields = "g,ge,l,le".split(",");
    String stmtText =
        "select "
            + "intPrimitive > any (1, 3, 4) as g, "
            + "intPrimitive >= some (1, 3, 4) as ge, "
            + "intPrimitive < any (1, 3, 4) as l, "
            + "intPrimitive <= some (1, 3, 4) as le "
            + " from SupportBean(string like 'E%')";
    EPStatement stmt = epService.getEPAdministrator().createEPL(stmtText);
    stmt.addListener(listener);

    Object[][] result = {
      {false, false, true, true},
      {false, true, true, true},
      {true, true, true, true},
      {true, true, true, true},
      {true, true, false, true},
      {true, true, false, false}
    };

    for (int i = 0; i < 6; i++) {
      epService.getEPRuntime().sendEvent(new SupportBean("E1", i));
      // System.out.println("line " + i);
      ArrayAssertionUtil.assertProps(listener.assertOneGetNewAndReset(), fields, result[i]);
    }
  }
示例#22
0
  public void testCoalesceDouble() {
    setupCoalesce(
        "coalesce(null, byteBoxed, shortBoxed, intBoxed, longBoxed, floatBoxed, doubleBoxed)");
    assertEquals(Double.class, selectTestView.getEventType().getPropertyType("result"));

    sendEventWithDouble(null, null, null, null, null, null);
    assertEquals(null, testListener.assertOneGetNewAndReset().get("result"));

    sendEventWithDouble(null, Short.parseShort("2"), null, null, null, 1d);
    assertEquals(2d, testListener.assertOneGetNewAndReset().get("result"));

    sendEventWithDouble(null, null, null, null, null, 100d);
    assertEquals(100d, testListener.assertOneGetNewAndReset().get("result"));

    sendEventWithDouble(null, null, null, null, 10f, 100d);
    assertEquals(10d, testListener.assertOneGetNewAndReset().get("result"));

    sendEventWithDouble(null, null, 1, 5l, 10f, 100d);
    assertEquals(1d, testListener.assertOneGetNewAndReset().get("result"));

    sendEventWithDouble(Byte.parseByte("3"), null, null, null, null, null);
    assertEquals(3d, testListener.assertOneGetNewAndReset().get("result"));

    sendEventWithDouble(null, null, null, 5l, 10f, 100d);
    assertEquals(5d, testListener.assertOneGetNewAndReset().get("result"));
  }
示例#23
0
  public void testOperators() {
    String viewExpr =
        "select longBoxed % intBoxed as myMod "
            + " from "
            + SupportBean.class.getName()
            + ".win:length(3) where not(longBoxed > intBoxed)";
    selectTestView = epService.getEPAdministrator().createEPL(viewExpr);
    selectTestView.addListener(testListener);

    sendEvent(1, 1, (short) 0);
    assertEquals(0l, testListener.getLastNewData()[0].get("myMod"));
    testListener.reset();

    sendEvent(2, 1, (short) 0);
    assertFalse(testListener.getAndClearIsInvoked());

    sendEvent(2, 3, (short) 0);
    assertEquals(2l, testListener.getLastNewData()[0].get("myMod"));
    testListener.reset();
  }
示例#24
0
  public void testUnfilteredExpression() {
    String stmtText = "select (select p10 || p11 from S1.std:lastevent()) as value from S0";

    EPStatement stmt = epService.getEPAdministrator().createEPL(stmtText);
    stmt.addListener(listener);

    // check type
    assertEquals(String.class, stmt.getEventType().getPropertyType("value"));

    // test no event, should return null
    epService.getEPRuntime().sendEvent(new SupportBean_S0(1));
    EventBean event = listener.assertOneGetNewAndReset();
    assertEquals(null, event.get("value"));

    // test one event
    epService.getEPRuntime().sendEvent(new SupportBean_S1(-1, "a", "b"));
    epService.getEPRuntime().sendEvent(new SupportBean_S0(1));
    event = listener.assertOneGetNewAndReset();
    assertEquals("ab", event.get("value"));
  }
示例#25
0
  public void testComputedResult() {
    String stmtText = "select 100*(select id from S1.win:length(1000)) as idS1 from S0";

    EPStatement stmt = epService.getEPAdministrator().createEPL(stmtText);
    stmt.addListener(listener);

    // check type
    assertEquals(Integer.class, stmt.getEventType().getPropertyType("idS1"));

    // test no event, should return null
    epService.getEPRuntime().sendEvent(new SupportBean_S0(0));
    assertEquals(null, listener.assertOneGetNewAndReset().get("idS1"));

    // test one event
    epService.getEPRuntime().sendEvent(new SupportBean_S1(10));
    epService.getEPRuntime().sendEvent(new SupportBean_S0(1));
    assertEquals(1000, listener.assertOneGetNewAndReset().get("idS1"));

    // resend event
    epService.getEPRuntime().sendEvent(new SupportBean_S0(2));
    assertEquals(1000, listener.assertOneGetNewAndReset().get("idS1"));
  }
示例#26
0
  public void testMultiColumnSelect() {
    String stmtText =
        "select (select id+1 as myId from S1.std:lastevent()) as idS1_0, "
            + "(select id+2 as myId from S1.std:lastevent()) as idS1_1 from S0";

    EPStatement stmt = epService.getEPAdministrator().createEPL(stmtText);
    stmt.addListener(listener);

    // check type
    assertEquals(Integer.class, stmt.getEventType().getPropertyType("idS1_0"));
    assertEquals(Integer.class, stmt.getEventType().getPropertyType("idS1_1"));

    // test no event, should return null
    epService.getEPRuntime().sendEvent(new SupportBean_S0(1));
    EventBean event = listener.assertOneGetNewAndReset();
    assertEquals(null, event.get("idS1_0"));
    assertEquals(null, event.get("idS1_1"));

    // test one event
    epService.getEPRuntime().sendEvent(new SupportBean_S1(10));
    epService.getEPRuntime().sendEvent(new SupportBean_S0(1));
    event = listener.assertOneGetNewAndReset();
    assertEquals(11, event.get("idS1_0"));
    assertEquals(12, event.get("idS1_1"));

    // resend event
    epService.getEPRuntime().sendEvent(new SupportBean_S0(2));
    event = listener.assertOneGetNewAndReset();
    assertEquals(11, event.get("idS1_0"));
    assertEquals(12, event.get("idS1_1"));

    // test second event
    epService.getEPRuntime().sendEvent(new SupportBean_S1(999));
    epService.getEPRuntime().sendEvent(new SupportBean_S0(3));
    event = listener.assertOneGetNewAndReset();
    assertEquals(1000, event.get("idS1_0"));
    assertEquals(1001, event.get("idS1_1"));
  }
  public void testPropertyOrSingleRowMethod() throws Exception {
    epService
        .getEPAdministrator()
        .getConfiguration()
        .addEventType("SupportBean", SupportBean.class);
    String text = "select surroundx('test') as val from SupportBean";
    EPStatement stmt = epService.getEPAdministrator().createEPL(text);
    stmt.addListener(listener);

    String fields[] = new String[] {"val"};
    epService.getEPRuntime().sendEvent(new SupportBean("a", 3));
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {"XtestX"});
  }
示例#28
0
  private void runUnfilteredStreamPrior(EPStatement stmt) {
    stmt.addListener(listener);

    // check type
    assertEquals(Integer.class, stmt.getEventType().getPropertyType("idS1"));

    // test no event, should return null
    epService.getEPRuntime().sendEvent(new SupportBean_S0(0));
    assertEquals(null, listener.assertOneGetNewAndReset().get("idS1"));

    // test one event
    epService.getEPRuntime().sendEvent(new SupportBean_S1(10));
    epService.getEPRuntime().sendEvent(new SupportBean_S0(1));
    assertEquals(10, listener.assertOneGetNewAndReset().get("idS1"));

    // resend event
    epService.getEPRuntime().sendEvent(new SupportBean_S0(2));
    assertEquals(10, listener.assertOneGetNewAndReset().get("idS1"));

    // test second event
    epService.getEPRuntime().sendEvent(new SupportBean_S0(3));
    assertEquals(10, listener.assertOneGetNewAndReset().get("idS1"));
  }
示例#29
0
  public void testRelationalOpAnyArray() {
    String[] fields = "g,ge".split(",");
    String stmtText =
        "select "
            + "longBoxed > any ({1, 2}, intArr, intCol) as g, "
            + "longBoxed >= any ({1, 2}, intArr, intCol) as ge "
            + "from ArrayBean";
    EPStatement stmt = epService.getEPAdministrator().createEPL(stmtText);
    stmt.addListener(listener);

    SupportBeanArrayCollMap arrayBean = new SupportBeanArrayCollMap(new int[] {1, 2});
    arrayBean.setIntCol(Arrays.asList(1, 2));
    arrayBean.setLongBoxed(1L);
    epService.getEPRuntime().sendEvent(arrayBean);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {false, true});

    arrayBean.setLongBoxed(2L);
    epService.getEPRuntime().sendEvent(arrayBean);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {true, true});

    arrayBean = new SupportBeanArrayCollMap(new int[] {2, 2});
    arrayBean.setIntCol(Arrays.asList(2, 1));
    arrayBean.setLongBoxed(1L);
    epService.getEPRuntime().sendEvent(arrayBean);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {false, true});

    arrayBean = new SupportBeanArrayCollMap(new int[] {1, 1});
    arrayBean.setIntCol(Arrays.asList(1, 1));
    arrayBean.setLongBoxed(0L);
    epService.getEPRuntime().sendEvent(arrayBean);
    ArrayAssertionUtil.assertProps(
        listener.assertOneGetNewAndReset(), fields, new Object[] {false, false});
  }
示例#30
0
  public void testMinMaxWindowStats_Compile() throws Exception {
    String viewExpr =
        "select max(longBoxed, intBoxed) as myMax, "
            + "max(longBoxed, intBoxed, shortBoxed) as myMaxEx, "
            + "min(longBoxed, intBoxed) as myMin, "
            + "min(longBoxed, intBoxed, shortBoxed) as myMinEx"
            + " from "
            + SupportBean.class.getName()
            + ".win:length(3)";

    EPStatementObjectModel model = epService.getEPAdministrator().compileEPL(viewExpr);
    model = (EPStatementObjectModel) SerializableObjectCopier.copy(model);
    assertEquals(viewExpr, model.toEPL());

    selectTestView = epService.getEPAdministrator().create(model);
    selectTestView.addListener(testListener);
    testListener.reset();

    runMinMaxWindowStats();
  }