use of org.drools.workbench.models.testscenarios.shared.VerifyFact in project drools-wb by kiegroup.
the class TestScenarioIndexVisitor method visit.
private void visit(final Fixture fixture) {
if (fixture instanceof FixtureList) {
for (Fixture child : ((FixtureList) fixture)) {
visit(child);
}
} else if (fixture instanceof FixturesMap) {
for (Fixture child : ((FixturesMap) fixture).values()) {
visit(child);
}
} else if (fixture instanceof FactData) {
final FactData factData = (FactData) fixture;
final String typeName = factData.getType();
final String fullyQualifiedClassName = getFullyQualifiedClassName(typeName);
ResourceReference resRef = addResourceReference(fullyQualifiedClassName, ResourceType.JAVA);
factDataToFullyQualifiedClassNameMap.put(factData.getName(), fullyQualifiedClassName);
for (Field field : factData.getFieldData()) {
final String fieldName = field.getName();
final String fieldFullyQualifiedClassName = getFieldFullyQualifiedClassName(fullyQualifiedClassName, fieldName);
resRef.addPartReference(fieldName, PartType.FIELD);
addResourceReference(fieldFullyQualifiedClassName, ResourceType.JAVA);
}
} else if (fixture instanceof VerifyFact) {
final VerifyFact verifyFact = (VerifyFact) fixture;
final String typeName = verifyFact.getName();
// If VerifyFact is not anonymous lookup FQCN from previous FactData elements
String fullyQualifiedClassName = null;
if (!verifyFact.anonymous) {
fullyQualifiedClassName = factDataToFullyQualifiedClassNameMap.get(verifyFact.getName());
} else {
fullyQualifiedClassName = getFullyQualifiedClassName(typeName);
}
ResourceReference resRef = null;
if (fullyQualifiedClassName != null) {
resRef = addResourceReference(fullyQualifiedClassName, ResourceType.JAVA);
for (VerifyField field : verifyFact.getFieldValues()) {
final String fieldName = field.getFieldName();
final String fieldFullyQualifiedClassName = getFieldFullyQualifiedClassName(fullyQualifiedClassName, fieldName);
resRef.addPartReference(fieldName, PartType.FIELD);
addResourceReference(fieldFullyQualifiedClassName, ResourceType.JAVA);
}
}
} else if (fixture instanceof VerifyRuleFired) {
final VerifyRuleFired verifyRuleFired = (VerifyRuleFired) fixture;
addResourceReference(verifyRuleFired.getRuleName(), ResourceType.RULE);
}
}
use of org.drools.workbench.models.testscenarios.shared.VerifyFact in project drools-wb by kiegroup.
the class TestScenarioFactory method makeTestScenarioWithVerifyFact.
public static Scenario makeTestScenarioWithVerifyFact(final String packageName, final Collection<Import> imports, final String name) {
final Scenario model = new Scenario();
model.getImports().getImports().addAll(imports);
model.setPackageName(packageName);
model.setName(name);
model.getFixtures().add(new FactData("Applicant", "$a", new ArrayList<Field>() {
{
add(new FieldData("age", "33"));
}
}, false));
model.getFixtures().add(new VerifyFact("Mortgage", new ArrayList<VerifyField>() {
{
add(new VerifyField("amount", "10000", "=="));
}
}, true));
return model;
}
use of org.drools.workbench.models.testscenarios.shared.VerifyFact in project drools by kiegroup.
the class ScenarioRunnerTest method testIntegrationWithModify.
@Test
public void testIntegrationWithModify() throws Exception {
Scenario sc = new Scenario();
sc.getImports().addImport(new Import("org.drools.workbench.models.testscenarios.backend.Cheese"));
sc.getFixtures().add(new FactData("Cheese", "c1", Arrays.<Field>asList(new FieldData("price", "1")), false));
sc.getFixtures().add(new ExecutionTrace());
sc.getFixtures().add(new VerifyFact("c1", ls(new VerifyField("type", "rule1", "=="))));
sc.getFixtures().add(new FactData("Cheese", "c1", Arrays.<Field>asList(new FieldData("price", "42")), true));
sc.getFixtures().add(new ExecutionTrace());
sc.getFixtures().add(new VerifyFact("c1", ls(new VerifyField("type", "rule3", "=="))));
KieSession ksession = getKieSession("test_stateful.drl");
ScenarioRunner run = new ScenarioRunner(ksession);
run.run(sc);
assertTrue(sc.wasSuccessful());
}
use of org.drools.workbench.models.testscenarios.shared.VerifyFact in project drools by kiegroup.
the class ScenarioRunnerTest method testIntegrationWithFailure.
@Test
public void testIntegrationWithFailure() throws Exception {
Scenario sc = new Scenario();
sc.getImports().addImport(new Import("org.drools.workbench.models.testscenarios.backend.Cheese"));
sc.getImports().addImport(new Import("org.drools.workbench.models.testscenarios.backend.Person"));
Expectation[] assertions = populateScenarioForFailure(sc);
KieSession ksession = getKieSession("test_rules2.drl");
ScenarioRunner run = new ScenarioRunner(ksession);
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());
}
use of org.drools.workbench.models.testscenarios.shared.VerifyFact in project drools by kiegroup.
the class ScenarioRunnerTest method testIntgerationStateful.
@Test
public void testIntgerationStateful() throws Exception {
Scenario sc = new Scenario();
sc.getImports().addImport(new Import("org.drools.workbench.models.testscenarios.backend.Cheese"));
sc.getFixtures().add(new FactData("Cheese", "c1", Arrays.<Field>asList(new FieldData("price", "1")), false));
ExecutionTrace ex = new ExecutionTrace();
sc.getFixtures().add(ex);
sc.getFixtures().add(new FactData("Cheese", "c2", Arrays.<Field>asList(new FieldData("price", "2")), false));
sc.getFixtures().add(new VerifyFact("c1", ls(new VerifyField("type", "rule1", "=="))));
ex = new ExecutionTrace();
sc.getFixtures().add(ex);
sc.getFixtures().add(new VerifyFact("c1", ls(new VerifyField("type", "rule2", "=="))));
KieSession ksession = getKieSession("test_stateful.drl");
ScenarioRunner run = new ScenarioRunner(ksession);
run.run(sc);
assertTrue(sc.wasSuccessful());
}
Aggregations