@Test public void testCollection() throws Exception { TypeResolver resolver = new ClassTypeResolver(new HashSet<String>(), Thread.currentThread().getContextClassLoader()); resolver.addImport("org.drools.Cheesery"); resolver.addImport("org.drools.Cheese"); WorkingMemory wm = getWorkingMemory("test_rules2.drl"); ScenarioRunner run = new ScenarioRunner( resolver, getClassLoader(), (InternalWorkingMemory) wm); Scenario scenario = new Scenario(); run.run(scenario); Iterator iterator = ((InternalWorkingMemory) wm).getObjectStore().iterateFactHandles(); while (iterator.hasNext()){ FactHandle next = (FactHandle) iterator.next(); FactHandle next1 = next; } }
@Test public void testMapFactTypes() { Scenario sc = new Scenario(); sc.getFixtures().add( new FactData( "X", "q", null, false ) ); sc.getGlobals().add( new FactData( "Q", "x", null, false ) ); Map r = sc.getVariableTypes(); assertEquals( 2, r.size() ); assertEquals( "X", r.get( "q" ) ); assertEquals( "Q", r.get( "x" ) ); }
@Test public void testToXML() { ScenarioXMLPersistence p = ScenarioXMLPersistence.getInstance(); Scenario sc = new Scenario(); String s = p.marshal(sc); assertNotNull(s); sc = getDemo(); s = p.marshal(sc); assertTrue(s.indexOf("<ruleName>Life unverse and everything</ruleName>") > 0); Scenario sc_ = p.unmarshal(s); assertEquals(sc.getGlobals().size(), sc_.getGlobals().size()); assertEquals(sc.getFixtures().size(), sc_.getFixtures().size()); assertTrue(s.indexOf("org.drools") == -1); //check we have aliased all }
@Test public void testPopulateFactsWithInterfaces() throws Exception { Scenario sc = new Scenario(); List facts = ls(new FactData("List", "ls", new ArrayList(), false)); List globals = ls(new FactData("List", "ls", new ArrayList(), false)); sc.getFixtures().addAll(facts); sc.getGlobals().addAll(globals); TypeResolver resolver = new ClassTypeResolver(new HashSet<String>(), getClassLoader()); resolver.addImport("java.util.List"); ScenarioRunner runner = new ScenarioRunner( resolver, getClassLoader(), new MockWorkingMemory()); runner.run(sc); }
@Test public void testAllowRemoveFact() { Scenario sc = new Scenario();
@Test public void testIsFactNameUsed() { Scenario sc = new Scenario(); sc.getGlobals().add( new FactData( "X", "x", null, false ) ); sc.getFixtures().add( new FactData( "Q", "q", null, false ) ); sc.getFixtures().add( new ExecutionTrace() ); assertTrue( sc.isFactNameReserved( "x" ) ); assertTrue( sc.isFactNameReserved( "q" ) ); assertFalse( sc.isFactNameReserved( "w" ) ); sc = new Scenario(); assertFalse( sc.isFactNameReserved( "w" ) ); }
Scenario sc = new Scenario(); sc.getGlobals().add(new FactData("List", "testList",
@Test public void testNewScenario() { FactData d1 = new FactData("Driver", "d1", ls(new FieldData[]{new FieldData("age", "42"), new FieldData("name", "david")}), false); Scenario sc = new Scenario(); sc.getFixtures().add(d1); sc.getFixtures().add(new ExecutionTrace()); int size = sc.getFixtures().size(); String xml = ScenarioXMLPersistence.getInstance().marshal(sc); Scenario sc_ = ScenarioXMLPersistence.getInstance().unmarshal(xml); assertEquals(size, sc_.getFixtures().size()); sc = new Scenario(); sc.getFixtures().add(new ExecutionTrace()); xml = ScenarioXMLPersistence.getInstance().marshal(sc); sc_ = ScenarioXMLPersistence.getInstance().unmarshal(xml); assertEquals(1, sc_.getFixtures().size()); }
@Test public void testRemoveFixture() { Scenario sc = new Scenario(); VerifyRuleFired vf1 = new VerifyRuleFired(); VerifyRuleFired vf2 = new VerifyRuleFired(); VerifyRuleFired vf3 = new VerifyRuleFired(); FactData fd = new FactData(); sc.getFixtures().add( vf1 ); sc.getFixtures().add( vf2 ); sc.getFixtures().add( vf3 ); sc.getGlobals().add( fd ); sc.removeFixture( vf2 ); assertEquals( 2, sc.getFixtures().size() ); assertEquals( vf1, sc.getFixtures().get( 0 ) ); assertEquals( vf3, sc.getFixtures().get( 1 ) ); assertEquals( 1, sc.getGlobals().size() ); sc.removeFixture( fd ); assertEquals( 0, sc.getGlobals().size() ); assertEquals( 2, sc.getFixtures().size() ); }
@Test public void testTestingEventListener() throws Exception { Scenario sc = new Scenario(); sc.getRules().add("foo"); sc.getRules().add("bar"); ExecutionTrace ext = new ExecutionTrace(); sc.getFixtures().add(ext); MockWorkingMemory wm = new MockWorkingMemory(); PseudoClockScheduler clock = new PseudoClockScheduler(); long time = new Date().getTime(); clock.setStartupTime(time); clock.setSession(wm); wm.setSessionClock(clock); ScenarioRunner run = new ScenarioRunner( null, getClassLoader(), wm); run.run(sc); assertNotNull(wm.agendaEventListener); assertTrue(wm.agendaEventListener instanceof TestingEventListener); assertEquals(2, sc.getRules().size()); assertTrue(sc.getRules().contains("foo")); assertTrue(sc.getRules().contains("bar")); }
FactData d3 = new FactData("Driver", "d3", ls(new FieldData[]{new FieldData("name", "michael2")}), false); FactData d4 = new FactData("Accident", "a1", ls(new FieldData[]{new FieldData("name", "michael2")}), false); Scenario sc = new Scenario(); sc.getFixtures().add(d1); sc.getFixtures().add(d2);
@Test public void testCountSuccessFailures() { Scenario sc = new Scenario(); sc.getFixtures().add( new FactData() ); sc.getFixtures().add( new ExecutionTrace() ); VerifyRuleFired vr = new VerifyRuleFired(); vr.setSuccessResult( false ); sc.getFixtures().add( vr ); VerifyField vf = new VerifyField(); vf.setSuccessResult( true ); VerifyField vf2 = new VerifyField(); vf2.setSuccessResult( false ); VerifyFact vfact = new VerifyFact(); vfact.getFieldValues().add( vf ); vfact.getFieldValues().add( vf2 ); sc.getFixtures().add( vfact ); int[] totals = sc.countFailuresTotal(); assertEquals( 2, totals[0] ); assertEquals( 3, totals[1] ); }
@Test public void testIntegrationWithModify() throws Exception { Scenario sc = new Scenario(); sc.getFixtures().add(new FactData("Cheese", "c1",
@Test public void testIntgerationStateful() throws Exception { Scenario sc = new Scenario(); sc.getFixtures().add(new FactData("Cheese", "c1",
@Test public void testIntegrationWithFailure() throws Exception { Scenario sc = new Scenario(); Expectation[] assertions = populateScenarioForFailure(sc); TypeResolver resolver = new ClassTypeResolver(new HashSet<String>(), Thread.currentThread().getContextClassLoader()); resolver.addImport("org.drools.Cheese"); resolver.addImport("org.drools.Person"); WorkingMemory wm = getWorkingMemory("test_rules2.drl"); ScenarioRunner run = new ScenarioRunner( resolver, getClassLoader(), (InternalWorkingMemory) wm); run.run(sc); assertFalse(sc.wasSuccessful()); VerifyFact vf = (VerifyFact) assertions[1]; assertFalse((vf.getFieldValues().get(0)).getSuccessResult()); assertEquals("XXX", vf.getFieldValues().get(0).getExpected()); assertEquals("rule1", vf.getFieldValues().get(0).getActualResult()); assertNotNull(vf.getFieldValues().get(0).getExplanation()); VerifyRuleFired vr = (VerifyRuleFired) assertions[4]; assertFalse(vr.getSuccessResult()); assertEquals(2, vr.getExpectedCount().intValue()); assertEquals(0, vr.getActualResult().intValue()); }
@Test public void testIntegrationWithRetract() throws Exception { Scenario sc = new Scenario(); sc.getFixtures().add(new FactData("Cheese", "c1",
resolver.addImport("org.drools.CheeseType"); Scenario scenario = new Scenario(); scenario.getFixtures().add(cheeseFactData); scenario.getFixtures().add(f1);
Scenario sc = new Scenario(); MockWorkingMemory wm = new MockWorkingMemory(); PseudoClockScheduler clock = new PseudoClockScheduler();