/* * ************************************************************************************* * Copyright (C) 2008 EsperTech, Inc. All rights reserved. * * http://esper.codehaus.org * * http://www.espertech.com * * ---------------------------------------------------------------------------------- * * The software in this package is published under the terms of the GPL license * * a copy of which has been included with this distribution in the license.txt file. * * ************************************************************************************* */ package com.espertech.esper.regression.epl; import com.espertech.esper.client.Configuration; import com.espertech.esper.client.EPServiceProvider; import com.espertech.esper.client.EPServiceProviderManager; import com.espertech.esper.client.EPStatement; import com.espertech.esper.client.scopetest.EPAssertionUtil; import com.espertech.esper.client.scopetest.SupportUpdateListener; import com.espertech.esper.support.bean.SupportBeanInt; import com.espertech.esper.support.client.SupportConfigFactory; import com.espertech.esper.support.epl.SupportJoinMethods; import junit.framework.TestCase; public class TestFromClauseMethodNStream extends TestCase { private EPServiceProvider epService; private SupportUpdateListener listener; public void setUp() { Configuration config = SupportConfigFactory.getConfiguration(); config.getEngineDefaults().getLogging().setEnableQueryPlan(true); config.addEventType(SupportBeanInt.class); config.addImport(SupportJoinMethods.class.getName()); config.addVariable("var1", Integer.class, 0); config.addVariable("var2", Integer.class, 0); config.addVariable("var3", Integer.class, 0); config.addVariable("var4", Integer.class, 0); epService = EPServiceProviderManager.getDefaultProvider(config); epService.initialize(); listener = new SupportUpdateListener(); } protected void tearDown() throws Exception { listener = null; } public void test1Stream2HistStarSubordinateCartesianLast() { String expression; expression = "select s0.id as id, h0.val as valh0, h1.val as valh1 " + "from SupportBeanInt.std:lastevent() as s0, " + "method:SupportJoinMethods.fetchVal('H0', p00) as h0, " + "method:SupportJoinMethods.fetchVal('H1', p01) as h1 " + "order by h0.val, h1.val"; EPStatement stmt = epService.getEPAdministrator().createEPL(expression); listener = new SupportUpdateListener(); stmt.addListener(listener); String[] fields = "id,valh0,valh1".split(","); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, null); sendBeanInt("E1", 1, 1); EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, new Object[][]{{"E1", "H01", "H11"}}); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, new Object[][]{{"E1", "H01", "H11"}}); sendBeanInt("E2", 2, 0); EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, null); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, null); sendBeanInt("E3", 0, 1); EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, null); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, null); sendBeanInt("E3", 2, 2); Object[][] result = new Object[][] {{"E3", "H01", "H11"}, {"E3", "H01", "H12"}, {"E3", "H02", "H11"}, {"E3", "H02", "H12"}}; EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, result); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, result); sendBeanInt("E4", 2, 1); result = new Object[][] {{"E4", "H01", "H11"}, {"E4", "H02", "H11"}}; EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, result); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, result); } public void test1Stream2HistStarSubordinateJoinedKeepall() { String expression; expression = "select s0.id as id, h0.val as valh0, h1.val as valh1 " + "from SupportBeanInt.win:keepall() as s0, " + "method:SupportJoinMethods.fetchVal('H0', p00) as h0, " + "method:SupportJoinMethods.fetchVal('H1', p01) as h1 " + "where h0.index = h1.index and h0.index = p02"; runAssertionOne(expression); expression = "select s0.id as id, h0.val as valh0, h1.val as valh1 from " + "method:SupportJoinMethods.fetchVal('H1', p01) as h1, " + "method:SupportJoinMethods.fetchVal('H0', p00) as h0, " + "SupportBeanInt.win:keepall() as s0 " + "where h0.index = h1.index and h0.index = p02"; runAssertionOne(expression); } private void runAssertionOne(String expression) { EPStatement stmt = epService.getEPAdministrator().createEPL(expression); listener = new SupportUpdateListener(); stmt.addListener(listener); String[] fields = "id,valh0,valh1".split(","); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, null); sendBeanInt("E1", 20, 20, 3); EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, new Object[][]{{"E1", "H03", "H13"}}); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, new Object[][]{{"E1", "H03", "H13"}}); sendBeanInt("E2", 20, 20, 21); EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, null); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, new Object[][]{{"E1", "H03", "H13"}}); sendBeanInt("E3", 4, 4, 2); EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, new Object[][]{{"E3", "H02", "H12"}}); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, new Object[][]{{"E1", "H03", "H13"}, {"E3", "H02", "H12"}}); stmt.destroy(); } public void test1Stream2HistForwardSubordinate() { String expression; expression = "select s0.id as id, h0.val as valh0, h1.val as valh1 " + "from SupportBeanInt.win:keepall() as s0, " + "method:SupportJoinMethods.fetchVal('H0', p00) as h0, " + "method:SupportJoinMethods.fetchVal(h0.val, p01) as h1 " + "order by h0.val, h1.val"; runAssertionTwo(expression); expression = "select s0.id as id, h0.val as valh0, h1.val as valh1 from " + "method:SupportJoinMethods.fetchVal(h0.val, p01) as h1, " + "SupportBeanInt.win:keepall() as s0, " + "method:SupportJoinMethods.fetchVal('H0', p00) as h0 " + "order by h0.val, h1.val"; runAssertionTwo(expression); } private void runAssertionTwo(String expression) { EPStatement stmt = epService.getEPAdministrator().createEPL(expression); listener = new SupportUpdateListener(); stmt.addListener(listener); String[] fields = "id,valh0,valh1".split(","); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, null); sendBeanInt("E1", 1, 1); EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, new Object[][]{{"E1", "H01", "H011"}}); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, new Object[][]{{"E1", "H01", "H011"}}); sendBeanInt("E2", 0, 1); EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, null); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, new Object[][]{{"E1", "H01", "H011"}}); sendBeanInt("E3", 1, 0); EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, null); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, new Object[][]{{"E1", "H01", "H011"}}); sendBeanInt("E4", 2, 2); Object[][] result = {{"E4", "H01", "H011"}, {"E4", "H01", "H012"}, {"E4", "H02", "H021"}, {"E4", "H02", "H022"}}; EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, result); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, EPAssertionUtil.concatenateArray2Dim(result, new Object[][]{{"E1", "H01", "H011"}})); } public void test1Stream3HistStarSubordinateCartesianLast() { String expression; expression = "select s0.id as id, h0.val as valh0, h1.val as valh1, h2.val as valh2 " + "from SupportBeanInt.std:lastevent() as s0, " + "method:SupportJoinMethods.fetchVal('H0', p00) as h0, " + "method:SupportJoinMethods.fetchVal('H1', p01) as h1, " + "method:SupportJoinMethods.fetchVal('H2', p02) as h2 " + "order by h0.val, h1.val, h2.val"; runAssertionThree(expression); expression = "select s0.id as id, h0.val as valh0, h1.val as valh1, h2.val as valh2 from " + "method:SupportJoinMethods.fetchVal('H2', p02) as h2, " + "method:SupportJoinMethods.fetchVal('H1', p01) as h1, " + "method:SupportJoinMethods.fetchVal('H0', p00) as h0, " + "SupportBeanInt.std:lastevent() as s0 " + "order by h0.val, h1.val, h2.val"; runAssertionThree(expression); } private void runAssertionThree(String expression) { EPStatement stmt = epService.getEPAdministrator().createEPL(expression); listener = new SupportUpdateListener(); stmt.addListener(listener); String[] fields = "id,valh0,valh1,valh2".split(","); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, null); sendBeanInt("E1", 1, 1, 1); EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, new Object[][]{{"E1", "H01", "H11", "H21"}}); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, new Object[][]{{"E1", "H01", "H11", "H21"}}); sendBeanInt("E2", 1, 1, 2); Object[][] result = new Object[][] {{"E2", "H01", "H11", "H21"}, {"E2", "H01", "H11", "H22"}}; EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, result); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, result); } public void test1Stream3HistForwardSubordinate() { String expression; expression = "select s0.id as id, h0.val as valh0, h1.val as valh1, h2.val as valh2 " + "from SupportBeanInt.win:keepall() as s0, " + "method:SupportJoinMethods.fetchVal('H0', p00) as h0, " + "method:SupportJoinMethods.fetchVal('H1', p01) as h1, " + "method:SupportJoinMethods.fetchVal(h0.val||'H2', p02) as h2 " + " where h0.index = h1.index and h1.index = h2.index and h2.index = p03"; runAssertionFour(expression); expression = "select s0.id as id, h0.val as valh0, h1.val as valh1, h2.val as valh2 from " + "method:SupportJoinMethods.fetchVal(h0.val||'H2', p02) as h2, " + "method:SupportJoinMethods.fetchVal('H0', p00) as h0, " + "SupportBeanInt.win:keepall() as s0, " + "method:SupportJoinMethods.fetchVal('H1', p01) as h1 " + " where h0.index = h1.index and h1.index = h2.index and h2.index = p03"; runAssertionFour(expression); } private void runAssertionFour(String expression) { EPStatement stmt = epService.getEPAdministrator().createEPL(expression); listener = new SupportUpdateListener(); stmt.addListener(listener); String[] fields = "id,valh0,valh1,valh2".split(","); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, null); sendBeanInt("E1", 2, 2, 2, 1); EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, new Object[][]{{"E1", "H01", "H11", "H01H21"}}); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, new Object[][]{{"E1", "H01", "H11", "H01H21"}}); sendBeanInt("E2", 4, 4, 4, 3); EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, new Object[][]{{"E2", "H03", "H13", "H03H23"}}); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, new Object[][]{{"E1", "H01", "H11", "H01H21"}, {"E2", "H03", "H13", "H03H23"}}); } public void test1Stream3HistChainSubordinate() { String expression; expression = "select s0.id as id, h0.val as valh0, h1.val as valh1, h2.val as valh2 " + "from SupportBeanInt.win:keepall() as s0, " + "method:SupportJoinMethods.fetchVal('H0', p00) as h0, " + "method:SupportJoinMethods.fetchVal(h0.val||'H1', p01) as h1, " + "method:SupportJoinMethods.fetchVal(h1.val||'H2', p02) as h2 " + " where h0.index = h1.index and h1.index = h2.index and h2.index = p03"; EPStatement stmt = epService.getEPAdministrator().createEPL(expression); listener = new SupportUpdateListener(); stmt.addListener(listener); String[] fields = "id,valh0,valh1,valh2".split(","); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, null); sendBeanInt("E2", 4, 4, 4, 3); EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, new Object[][]{{"E2", "H03", "H03H13", "H03H13H23"}}); sendBeanInt("E2", 4, 4, 4, 5); EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, null); sendBeanInt("E2", 4, 4, 0, 1); EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, null); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, new Object[][]{{"E2", "H03", "H03H13", "H03H13H23"}}); } public void test2Stream2HistStarSubordinate() { String expression; expression = "select s0.id as ids0, s1.id as ids1, h0.val as valh0, h1.val as valh1 " + "from SupportBeanInt(id like 'S0%').win:keepall() as s0, " + "SupportBeanInt(id like 'S1%').std:lastevent() as s1, " + "method:SupportJoinMethods.fetchVal(s0.id||'H1', s0.p00) as h0, " + "method:SupportJoinMethods.fetchVal(s1.id||'H2', s1.p00) as h1 " + "order by s0.id asc"; EPStatement stmt = epService.getEPAdministrator().createEPL(expression); listener = new SupportUpdateListener(); stmt.addListener(listener); String[] fields = "ids0,ids1,valh0,valh1".split(","); sendBeanInt("S00", 1); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, null); assertFalse(listener.isInvoked()); sendBeanInt("S10", 1); Object[][] resultOne = new Object[][] {{"S00", "S10", "S00H11", "S10H21"}}; EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, resultOne); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, resultOne); sendBeanInt("S01", 1); Object[][] resultTwo = new Object[][] {{"S01", "S10", "S01H11", "S10H21"}}; EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, resultTwo); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, EPAssertionUtil.concatenateArray2Dim(resultOne, resultTwo)); sendBeanInt("S11", 1); Object[][] resultThree = new Object[][] {{"S00", "S11", "S00H11", "S11H21"}, {"S01", "S11", "S01H11", "S11H21"}}; EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, resultThree); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, EPAssertionUtil.concatenateArray2Dim(resultThree)); } public void test3Stream1HistSubordinate() { String expression; expression = "select s0.id as ids0, s1.id as ids1, s2.id as ids2, h0.val as valh0 " + "from SupportBeanInt(id like 'S0%').win:keepall() as s0, " + "SupportBeanInt(id like 'S1%').std:lastevent() as s1, " + "SupportBeanInt(id like 'S2%').std:lastevent() as s2, " + "method:SupportJoinMethods.fetchVal(s1.id||s2.id||'H1', s0.p00) as h0 " + "order by s0.id, s1.id, s2.id, h0.val"; EPStatement stmt = epService.getEPAdministrator().createEPL(expression); listener = new SupportUpdateListener(); stmt.addListener(listener); String[] fields = "ids0,ids1,ids2,valh0".split(","); sendBeanInt("S00", 2); sendBeanInt("S10", 1); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, null); assertFalse(listener.isInvoked()); sendBeanInt("S20", 1); Object[][] resultOne = new Object[][] {{"S00", "S10", "S20", "S10S20H11"}, {"S00", "S10", "S20", "S10S20H12"}}; EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, resultOne); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, resultOne); sendBeanInt("S01", 1); Object[][] resultTwo = new Object[][] {{"S01", "S10", "S20", "S10S20H11"}}; EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, resultTwo); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, EPAssertionUtil.concatenateArray2Dim(resultOne, resultTwo)); sendBeanInt("S21", 1); Object[][] resultThree = new Object[][] {{"S00", "S10", "S21", "S10S21H11"}, {"S00", "S10", "S21", "S10S21H12"}, {"S01", "S10", "S21", "S10S21H11"}}; EPAssertionUtil.assertPropsPerRow(listener.getAndResetLastNewData(), fields, resultThree); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, EPAssertionUtil.concatenateArray2Dim(resultThree)); } public void test3HistPureNoSubordinate() { epService.getEPAdministrator().createEPL("on SupportBeanInt set var1=p00, var2=p01, var3=p02, var4=p03"); String expression; expression = "select h0.val as valh0, h1.val as valh1, h2.val as valh2 from " + "method:SupportJoinMethods.fetchVal('H0', var1) as h0," + "method:SupportJoinMethods.fetchVal('H1', var2) as h1," + "method:SupportJoinMethods.fetchVal('H2', var3) as h2"; runAssertionFive(expression); expression = "select h0.val as valh0, h1.val as valh1, h2.val as valh2 from " + "method:SupportJoinMethods.fetchVal('H2', var3) as h2," + "method:SupportJoinMethods.fetchVal('H1', var2) as h1," + "method:SupportJoinMethods.fetchVal('H0', var1) as h0"; runAssertionFive(expression); } private void runAssertionFive(String expression) { EPStatement stmt = epService.getEPAdministrator().createEPL(expression); listener = new SupportUpdateListener(); stmt.addListener(listener); String[] fields = "valh0,valh1,valh2".split(","); sendBeanInt("S00", 1, 1, 1); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, new Object[][]{{"H01", "H11", "H21"}}); sendBeanInt("S01", 0, 1, 1); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, null); sendBeanInt("S02", 1, 1, 0); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, null); sendBeanInt("S03", 1, 1, 2); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, new Object[][]{{"H01", "H11", "H21"}, {"H01", "H11", "H22"}}); sendBeanInt("S04", 2, 2, 1); Object[][] result = new Object[][] {{"H01", "H11", "H21"}, {"H02", "H11", "H21"}, {"H01", "H12", "H21"}, {"H02", "H12", "H21"}}; EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, result); } public void test3Hist1Subordinate() { epService.getEPAdministrator().createEPL("on SupportBeanInt set var1=p00, var2=p01, var3=p02, var4=p03"); String expression; expression = "select h0.val as valh0, h1.val as valh1, h2.val as valh2 from " + "method:SupportJoinMethods.fetchVal('H0', var1) as h0," + "method:SupportJoinMethods.fetchVal('H1', var2) as h1," + "method:SupportJoinMethods.fetchVal(h0.val||'-H2', var3) as h2"; runAssertionSix(expression); expression = "select h0.val as valh0, h1.val as valh1, h2.val as valh2 from " + "method:SupportJoinMethods.fetchVal(h0.val||'-H2', var3) as h2," + "method:SupportJoinMethods.fetchVal('H1', var2) as h1," + "method:SupportJoinMethods.fetchVal('H0', var1) as h0"; runAssertionSix(expression); } private void runAssertionSix(String expression) { EPStatement stmt = epService.getEPAdministrator().createEPL(expression); listener = new SupportUpdateListener(); stmt.addListener(listener); String[] fields = "valh0,valh1,valh2".split(","); sendBeanInt("S00", 1, 1, 1); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, new Object[][]{{"H01", "H11", "H01-H21"}}); sendBeanInt("S01", 0, 1, 1); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, null); sendBeanInt("S02", 1, 1, 0); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, null); sendBeanInt("S03", 1, 1, 2); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, new Object[][]{{"H01", "H11", "H01-H21"}, {"H01", "H11", "H01-H22"}}); sendBeanInt("S04", 2, 2, 1); Object[][] result = new Object[][] {{"H01", "H11", "H01-H21"}, {"H02", "H11", "H02-H21"}, {"H01", "H12", "H01-H21"}, {"H02", "H12", "H02-H21"}}; EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, result); } public void test3Hist2SubordinateChain() { epService.getEPAdministrator().createEPL("on SupportBeanInt set var1=p00, var2=p01, var3=p02, var4=p03"); String expression; expression = "select h0.val as valh0, h1.val as valh1, h2.val as valh2 from " + "method:SupportJoinMethods.fetchVal('H0', var1) as h0," + "method:SupportJoinMethods.fetchVal(h0.val||'-H1', var2) as h1," + "method:SupportJoinMethods.fetchVal(h1.val||'-H2', var3) as h2"; runAssertionSeven(expression); expression = "select h0.val as valh0, h1.val as valh1, h2.val as valh2 from " + "method:SupportJoinMethods.fetchVal(h1.val||'-H2', var3) as h2," + "method:SupportJoinMethods.fetchVal(h0.val||'-H1', var2) as h1," + "method:SupportJoinMethods.fetchVal('H0', var1) as h0"; runAssertionSeven(expression); } private void runAssertionSeven(String expression) { EPStatement stmt = epService.getEPAdministrator().createEPL(expression); listener = new SupportUpdateListener(); stmt.addListener(listener); String[] fields = "valh0,valh1,valh2".split(","); sendBeanInt("S00", 1, 1, 1); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, new Object[][]{{"H01", "H01-H11", "H01-H11-H21"}}); sendBeanInt("S01", 0, 1, 1); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, null); sendBeanInt("S02", 1, 1, 0); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, null); sendBeanInt("S03", 1, 1, 2); EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, new Object[][]{{"H01", "H01-H11", "H01-H11-H21"}, {"H01", "H01-H11", "H01-H11-H22"}}); sendBeanInt("S04", 2, 2, 1); Object[][] result = new Object[][] {{"H01", "H01-H11", "H01-H11-H21"}, {"H02", "H02-H11", "H02-H11-H21"}, {"H01", "H01-H12", "H01-H12-H21"}, {"H02", "H02-H12", "H02-H12-H21"}}; EPAssertionUtil.assertPropsPerRowAnyOrder(stmt.iterator(), fields, result); } private void sendBeanInt(String id, int p00, int p01, int p02, int p03) { epService.getEPRuntime().sendEvent(new SupportBeanInt(id, p00, p01, p02, p03, -1, -1)); } private void sendBeanInt(String id, int p00, int p01, int p02) { sendBeanInt(id, p00, p01, p02, -1); } private void sendBeanInt(String id, int p00, int p01) { sendBeanInt(id, p00, p01, -1, -1); } private void sendBeanInt(String id, int p00) { sendBeanInt(id, p00, -1, -1, -1); } }