private boolean verifyFact(Object factObject, VerifyFact verifyFact, Map<String, Object> populatedData, TypeResolver resolver) throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException { if ( factObject.getClass().getSimpleName().equals( verifyFact.getName() ) ) { FactFieldValueVerifier fieldVerifier = new FactFieldValueVerifier( populatedData, verifyFact.getName(), factObject, resolver, classLoader ); fieldVerifier.checkFields( verifyFact.getFieldValues() ); if ( verifyFact.wasSuccessful() ) { return true; } } return false; }
/** * * @return int[0] = failures, int[1] = total; */ public int[] countFailuresTotal() { int total = 0; int failures = 0; for ( Fixture fixture : fixtures ) { if ( fixture instanceof VerifyRuleFired ) { total++; VerifyRuleFired verifyRuleFired = (VerifyRuleFired) fixture; if ( ruleFailedToFire( verifyRuleFired ) ) { failures++; } } else if ( fixture instanceof VerifyFact ) { VerifyFact verifyFact = (VerifyFact) fixture; for ( VerifyField verifyField : verifyFact.getFieldValues() ) { if ( fieldExpectationFailed( verifyField ) ) { failures++; } total++; } } } return new int[]{failures, total}; }
/** * * @return int[0] = failures, int[1] = total; */ public int[] countFailuresTotal() { int total = 0; int failures = 0; for ( Fixture fixture : fixtures ) { if ( fixture instanceof VerifyRuleFired ) { total++; VerifyRuleFired verifyRuleFired = (VerifyRuleFired) fixture; if ( ruleFailedToFire( verifyRuleFired ) ) { failures++; } } else if ( fixture instanceof VerifyFact ) { VerifyFact verifyFact = (VerifyFact) fixture; for ( VerifyField verifyField : verifyFact.getFieldValues() ) { if ( fieldExpectationFailed( verifyField ) ) { failures++; } total++; } } } return new int[]{failures, total}; }
private boolean verifyFact(Object factObject, VerifyFact verifyFact, Map<String, Object> populatedData, TypeResolver resolver) throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException { if ( factObject.getClass().getSimpleName().equals( verifyFact.getName() ) ) { FactFieldValueVerifier fieldVerifier = new FactFieldValueVerifier( populatedData, verifyFact.getName(), factObject, resolver, classLoader ); fieldVerifier.checkFields( verifyFact.getFieldValues() ); if ( verifyFact.wasSuccessful() ) { return true; } } return false; }
public void verify(VerifyFact verifyFact) throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException { for ( VerifyField vf : verifyFact.getFieldValues() ) { vf.setSuccessResult( null ); vf.setExplanation( "Fact of type [" + verifyFact.getName() + "] was not found in the results." ); resolver, classLoader ); fieldVerifier.checkFields( verifyFact.getFieldValues() ); } else { Iterator objects = workingMemory.iterateObjects(); for ( VerifyField verifyField : verifyFact.getFieldValues() ) { if ( verifyField.getSuccessResult() == null ) { verifyField.setSuccessResult( Boolean.FALSE );
public void verify(VerifyFact verifyFact) throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException { for ( VerifyField vf : verifyFact.getFieldValues() ) { vf.setSuccessResult( null ); vf.setExplanation( "Fact of type [" + verifyFact.getName() + "] was not found in the results." ); resolver, classLoader ); fieldVerifier.checkFields( verifyFact.getFieldValues() ); } else { Iterator objects = workingMemory.iterateObjects(); for ( VerifyField verifyField : verifyFact.getFieldValues() ) { if ( verifyField.getSuccessResult() == null ) { verifyField.setSuccessResult( Boolean.FALSE );
@Test public void testVerifyFactsWithExpression() throws Exception { TypeResolver typeResolver = mock(TypeResolver.class); ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); Cheese f1 = new Cheese("cheddar", 42); f1.setPrice(42); 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>()); // test all true VerifyFact vf = new VerifyFact(); vf.setName("f1"); vf.getFieldValues().add(new VerifyField("price", "= 40 + 2", "==")); factVerifier.verify(vf); assertTrue(vf.getFieldValues().get(0).getSuccessResult()); }
@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()); }
vf.getFieldValues().add(new VerifyField("type", "cheddar", "==")); vf.getFieldValues().add(new VerifyField("price", "4777", "!=")); for (int i = 0; i < vf.getFieldValues().size(); i++) { assertTrue(vf.getFieldValues().get(i).getSuccessResult()); vf.getFieldValues().add(new VerifyField("type", "cheddar", "!=")); factVerifier.verify(vf); assertFalse(vf.getFieldValues().get(0).getSuccessResult());
@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()); }
new ArrayList(), true); vf.getFieldValues().add(new VerifyField("price", "42", "==")); vf.getFieldValues().add(new VerifyField("type", "stilton", "==")); new ArrayList(), true); vf.getFieldValues().add(new VerifyField("age", "42", "==")); new ArrayList(), true); vf.getFieldValues().add(new VerifyField("price", "43", "==")); vf.getFieldValues().add(new VerifyField("type", "stilton", "==")); assertFalse(vf.wasSuccessful()); assertEquals(Boolean.FALSE, vf.getFieldValues().get(0).getSuccessResult()); vf.getFieldValues().add(new VerifyField("value",
@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 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] ); }
for (VerifyField verifyField : verifyCheddar.getFieldValues()) { assertTrue(verifyField.getSuccessResult()); for (VerifyField verifyField : michaelVerifyFact.getFieldValues()) { assertTrue(verifyField.getSuccessResult()); assertFalse((markVerifyFact.getFieldValues().get(0)).getSuccessResult()); assertTrue((markVerifyFact.getFieldValues().get(1)).getSuccessResult()); assertEquals("michael", markVerifyFact.getFieldValues().get(0).getActualResult()); assertEquals("mark", markVerifyFact.getFieldValues().get(0).getExpected()); assertFalse((mark2VerifyFact.getFieldValues().get(0)).getSuccessResult()); assertFalse((mark2VerifyFact.getFieldValues().get(1)).getSuccessResult()); assertEquals("michael", mark2VerifyFact.getFieldValues().get(0).getActualResult()); assertEquals("mark", mark2VerifyFact.getFieldValues().get(0).getExpected()); assertEquals("33", mark2VerifyFact.getFieldValues().get(1).getActualResult()); assertEquals("32", mark2VerifyFact.getFieldValues().get(1).getExpected());
for (VerifyField field : vf.getFieldValues()) { assertTrue(field.getSuccessResult());