clock.advanceTime( 300, TimeUnit.MILLISECONDS ); clock.advanceTime( 500, TimeUnit.MILLISECONDS ); assertEquals(1, myList.size()); assertEquals("Executing timer2", myList.get(0)); clock.advanceTime( 500, TimeUnit.MILLISECONDS ); assertEquals(2, myList.size());
clock.advanceTime( 60, TimeUnit.SECONDS ); ksession.fireAllRules(); "RHT", 10, clock.getCurrentTime() ) ); // 60 clock.advanceTime( 5, TimeUnit.SECONDS ); ksession.fireAllRules(); "RHT", 10, clock.getCurrentTime() ) ); // 65 clock.advanceTime( 5, TimeUnit.SECONDS ); ksession.fireAllRules(); "IBM", 10, clock.getCurrentTime() ) ); // 70 clock.advanceTime( 10, TimeUnit.SECONDS ); ksession.fireAllRules(); "RHT", 10, clock.getCurrentTime() ) ); // 80 clock.advanceTime( 10,
private void advanceTime(long millis) { SessionPseudoClock pseudoClock = kieSession.getSessionClock(); pseudoClock.advanceTime(millis, TimeUnit.MILLISECONDS); } }
private void advanceTime(long amount, TimeUnit unit) throws InterruptedException { if (kieSession.getSessionClock() instanceof SessionPseudoClock) { SessionPseudoClock clock = kieSession.getSessionClock(); clock.advanceTime(amount, unit); } else { Thread.sleep(TimeUnit.MILLISECONDS.convert(amount, unit)); } } }
private void populateSessionWithStocks() { final SessionPseudoClock clock = statefulSession.getSessionClock(); clock.advanceTime(1, TimeUnit.SECONDS); statefulSession.insert(stockFactory.createStock("ST1", 0d)); clock.advanceTime(1, TimeUnit.SECONDS); statefulSession.insert(stockFactory.createStock("ST2", 1d)); clock.advanceTime(1, TimeUnit.SECONDS); statefulSession.insert(stockFactory.createStock("ST3", 0d)); clock.advanceTime(1, TimeUnit.SECONDS); statefulSession.insert(stockFactory.createStock("ST4", 0d)); clock.advanceTime(1, TimeUnit.SECONDS); statefulSession.insert(stockFactory.createStock("ST5", 0d)); clock.advanceTime(1, TimeUnit.SECONDS); statefulSession.insert(stockFactory.createStock("ST6", 1d)); }
@Test public void testDeclaredTimeWindowInRule() throws InterruptedException { final long results[] = new long[] { 1, 2, 3, 4, 5, 5, 5, 5, 5, 5 }; EntryPoint entryPoint = ksession.getEntryPoint("EventStream"); List<Long> result = new ArrayList<Long>(); ksession.setGlobal("result", result); TestEvent event; for (int i = 0; i < 10; i++) { event = new TestEvent(null, "timeDec", null); entryPoint.insert(event); ksession.fireAllRules(); assertEquals(results[i], result.get(result.size() - 1).longValue()); clock.advanceTime(10, TimeUnit.MILLISECONDS); } }
@Test(timeout = 10000L) public void withResultTest() { secondEntryPoint.insert(new TestEvent("minusOne")); clock.advanceTime(5, TimeUnit.SECONDS); firstEntryPoint.insert(new TestEvent("zero")); secondEntryPoint.insert(new TestEvent("one")); clock.advanceTime(10, TimeUnit.SECONDS); secondEntryPoint.insert(new TestEvent("two")); clock.advanceTime(5, TimeUnit.SECONDS); secondEntryPoint.insert(new TestEvent("three")); QueryResults results = ksession.getQueryResults("ZeroToNineteenSeconds"); assertEquals(1, results.size()); }
@Test public void withResultTest() { secondEntryPoint.insert(new TestEvent("minusOne")); clock.advanceTime(5, TimeUnit.SECONDS); firstEntryPoint.insert(new TestEvent("zero")); secondEntryPoint.insert(new TestEvent("one")); clock.advanceTime(10, TimeUnit.SECONDS); secondEntryPoint.insert(new TestEvent("two")); clock.advanceTime(5, TimeUnit.SECONDS); secondEntryPoint.insert(new TestEvent("three")); QueryResults results = ksession.getQueryResults("ZeroToNineteenSeconds"); assertEquals(1, results.size()); }
@Test public void withResultOfSize0Test() { prepare1(); clock.advanceTime(1, TimeUnit.SECONDS); ksession.insert(new SolicitFirePojo()); int fired = ksession.fireAllRules(); assertEquals(1, fired); assertEquals(1, myGlobal.size()); assertEquals(0, ((QueryResults) myGlobal.get(0)).size()); }
@Test(timeout = 10000L) public void withNoResultTest() { secondEntryPoint.insert(new TestEvent("minusOne")); clock.advanceTime(5, TimeUnit.SECONDS); firstEntryPoint.insert(new TestEvent("zero")); secondEntryPoint.insert(new TestEvent("one")); clock.advanceTime(10, TimeUnit.SECONDS); secondEntryPoint.insert(new TestEvent("two")); // the following expires event "zero" and "one", causing the query to no longer match clock.advanceTime(10, TimeUnit.SECONDS); secondEntryPoint.insert(new TestEvent("three")); QueryResults results = ksession.getQueryResults("ZeroToNineteenSeconds"); assertEquals(0, results.size()); }
@Test public void withNoResultTest() { secondEntryPoint.insert(new TestEvent("minusOne")); clock.advanceTime(5, TimeUnit.SECONDS); firstEntryPoint.insert(new TestEvent("zero")); secondEntryPoint.insert(new TestEvent("one")); clock.advanceTime(10, TimeUnit.SECONDS); secondEntryPoint.insert(new TestEvent("two")); // the following expires event "zero" and "one", causing the query to no longer match clock.advanceTime(10, TimeUnit.SECONDS); secondEntryPoint.insert(new TestEvent("three")); QueryResults results = ksession.getQueryResults("ZeroToNineteenSeconds"); assertEquals(0, results.size()); }
@Test public void testTimeWindow() throws InterruptedException { EntryPoint entryPoint = ksession.getEntryPoint("EventStream"); final long results[] = new long[] { 1, 2, 3, 3, 3 }; TestEvent event; for (int i = 0; i < 5; i++) { event = new TestEvent(null, "time", null); entryPoint.insert(event); assertEquals(results[i], ksession.getQueryResults("TestTimeWindow") .iterator().next().get("$eventCount")); clock.advanceTime(100, TimeUnit.MILLISECONDS); } }
@Test public void withResultOfSize1Test() { prepare1(); clock.advanceTime(1, TimeUnit.SECONDS); ksession.insert(new QueryItemPojo()); ksession.insert(new SolicitFirePojo()); int fired = ksession.fireAllRules(); assertEquals(1, fired); assertEquals(1, myGlobal.size()); assertEquals(1, ((QueryResults) myGlobal.get(0)).size()); } @Test
@Test public void testDeclaredTimeWindowInQuery() throws InterruptedException { final long results[] = new long[] { 1, 2, 3, 4, 5, 5, 5, 5, 5, 5 }; EntryPoint entryPoint = ksession.getEntryPoint("EventStream"); TestEvent event; for (int i = 0; i < 10; i++) { event = new TestEvent(null, "timeDec", null); entryPoint.insert(event); assertEquals(results[i], ksession.getQueryResults("TestDeclaredTimeWindow") .iterator().next().get("$eventCount")); clock.advanceTime(10, TimeUnit.MILLISECONDS); } }
@Test public void withResultOfSize1AnotherTest() { prepare1(); clock.advanceTime(1, TimeUnit.SECONDS); ksession.insert(new SolicitFirePojo()); ksession.insert(new QueryItemPojo()); int fired = ksession.fireAllRules(); assertEquals(1, fired); assertEquals(1, myGlobal.size()); assertEquals(1, ((QueryResults) myGlobal.get(0)).size()); } @Test
clock.advanceTime( 4, TimeUnit.SECONDS ); clock = ksession.getSessionClock(); clock.advanceTime( 4, TimeUnit.SECONDS );
@Test public void test() { ksession.getCalendars().set("tuesday", TUESDAY); clock.advanceTime(4, TimeUnit.DAYS); // README now it is set to monday (test fails with NPE), when is set to tuesday (rule should fire) then test works ksession.fireAllRules(); }