@Test public void testVerifyFactExplanation() throws Exception { Cheese f1 = new Cheese(); f1.setType(null); TypeResolver typeResolver = mock(TypeResolver.class); ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); HashMap<String, Object> populatedData = new HashMap<String, Object>(); populatedData.put("f1", f1); workingMemory.facts.add(f1); FactVerifier factVerifier = new FactVerifier(populatedData, typeResolver, classLoader, workingMemory, new HashMap<String, Object>()); VerifyFact vf = new VerifyFact(); vf.setName("f1"); vf.getFieldValues().add(new VerifyField("type", "boo", "!=")); factVerifier.verify(vf); VerifyField vfl = vf.getFieldValues().get(0); assertEquals("[f1] field [type] was not [boo].", vfl.getExplanation()); }
@Test public void testVerifyFieldAndActualIsNull() throws Exception { Cheese f1 = new Cheese(); f1.setType(null); TypeResolver typeResolver = mock(TypeResolver.class); ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); HashMap<String, Object> populatedData = new HashMap<String, Object>(); populatedData.put("f1", f1); workingMemory.facts.add(f1); FactVerifier factVerifier = new FactVerifier(populatedData, typeResolver, classLoader, workingMemory, new HashMap<String, Object>()); VerifyFact vf = new VerifyFact(); vf.setName("f1"); vf.getFieldValues().add(new VerifyField("type", "boo", "==")); factVerifier.verify(vf); VerifyField vfl = vf.getFieldValues().get(0); assertEquals("[f1] field [type] was [] expected [boo].", vfl.getExplanation()); assertEquals("boo", vfl.getExpected()); assertEquals("", vfl.getActualResult()); }
@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()); }