use of org.drools.drl.ast.descr.PackageDescr in project drools by kiegroup.
the class ExprConstraintDescrVisitorTest method testVisitPerson.
@Test
public void testVisitPerson() throws Exception {
PackageDescr packageDescr = getPackageDescr(getClass().getResourceAsStream("ExprConstraintDescr1.drl"));
assertNotNull(packageDescr);
packageDescrVisitor.visitPackageDescr(packageDescr);
Collection<StringRestriction> allRestrictions = verifierData.getAll(VerifierComponentType.RESTRICTION);
Collection<Field> allFields = verifierData.getAll(VerifierComponentType.FIELD);
assertEquals(3, allRestrictions.size());
assertEquals(3, allFields.size());
for (Field field : allFields) {
assertNotNull(field.getFieldType());
}
assertContainsField("name");
assertContainsField("lastName");
assertContainsField("age");
assertContainsStringRestriction(Operator.BuiltInOperator.EQUAL.getOperator(), "toni");
assertContainsStringRestriction(Operator.BuiltInOperator.NOT_EQUAL.getOperator(), "Lake");
assertContainsNumberRestriction(Operator.BuiltInOperator.GREATER.getOperator(), 20);
assertContainsEval("eval( true )");
}
use of org.drools.drl.ast.descr.PackageDescr in project drools by kiegroup.
the class NestedPatternsTest method runVisitor.
@Test
public void runVisitor() throws Exception {
VerifierData data = VerifierReportFactory.newVerifierData();
PackageDescrVisitor visitor = new PackageDescrVisitor(data, Collections.EMPTY_LIST);
assertNotNull(data);
Reader drlReader = new InputStreamReader(getClass().getResourceAsStream("NestedPatterns.drl"));
PackageDescr packageDescr = new DrlParser(LanguageLevelOption.DRL5).parse(drlReader);
assertNotNull(packageDescr);
visitor.visitPackageDescr(packageDescr);
Collection<VerifierComponent> all = data.getAll();
int patternCount = 0;
for (VerifierComponent verifierComponent : all) {
if (verifierComponent.getVerifierComponentType().equals(VerifierComponentType.PATTERN)) {
patternCount++;
}
}
assertEquals(4, patternCount);
Collection<Pattern> patterns = data.getAll(VerifierComponentType.PATTERN);
// for ( Pattern pattern : patterns ) {
// System.out.println( pattern.getPath() + " " + pattern );
// }
assertNotNull(patterns);
assertEquals(4, patterns.size());
Collection<Restriction> restrictions = data.getAll(VerifierComponentType.RESTRICTION);
// for ( Restriction restriction : restrictions ) {
// System.out.println( restriction.getPath() + " " + restriction );
// }
assertNotNull(restrictions);
assertEquals(3, restrictions.size());
}
use of org.drools.drl.ast.descr.PackageDescr in project drools by kiegroup.
the class PatternDescrVisitorTest method testVisitPatternVariableRestriction.
@Test
public void testVisitPatternVariableRestriction() throws Exception {
PackageDescr packageDescr = getPackageDescr(getClass().getResourceAsStream("PatternDescrVisitorTest2.drl"));
assertNotNull(packageDescr);
packageDescrVisitor.visitPackageDescr(packageDescr);
assertContainsVariable("Test", "var");
}
use of org.drools.drl.ast.descr.PackageDescr in project drools by kiegroup.
the class VerifierComponentTest method testVisit.
@Test
public void testVisit() throws Exception {
// Drools Package description from Drl file
Reader drlReader = new InputStreamReader(Verifier.class.getResourceAsStream("Misc3.drl"));
PackageDescr descr = new DrlParser(LanguageLevelOption.DRL5).parse(drlReader);
// Drools Verifier objects
VerifierData verifierData = VerifierReportFactory.newVerifierData();
PackageDescrVisitor visitor = new PackageDescrVisitor(verifierData, Collections.EMPTY_LIST);
visitor.visitPackageDescr(descr);
// Collect the results.
Collection<VerifierComponent> datas = verifierData.getAll();
VerifierComponent[] components = datas.toArray(new VerifierComponent[datas.size()]);
// Misc3.drl
assertVerifierComponent((TextConsequence) components[0], 51);
assertVerifierComponent((TextConsequence) components[1], 42);
assertVerifierComponent((Field) components[2], 48);
assertVerifierComponent((Field) components[3], 39);
assertVerifierComponent((Field) components[4], 40);
assertVerifierComponent((Field) components[5], 41);
assertVerifierComponent((Import) components[6], 19);
assertVerifierComponent((ObjectType) components[7], 48);
assertVerifierComponent((ObjectType) components[8], 19);
assertVerifierComponent((ObjectType) components[9], 39);
assertVerifierComponent((ObjectType) components[10], 40);
assertVerifierComponent((ObjectType) components[11], 41);
assertVerifierComponent((RuleOperatorDescr) components[12], 48);
assertVerifierComponent((PatternOperatorDescr) components[13], 48);
assertVerifierComponent((PatternOperatorDescr) components[14], 49);
assertVerifierComponent((PatternOperatorDescr) components[15], 50);
assertVerifierComponent((RuleOperatorDescr) components[16], 39);
assertVerifierComponent((PatternOperatorDescr) components[17], 39);
assertVerifierComponent((PatternOperatorDescr) components[18], 40);
assertVerifierComponent((PatternOperatorDescr) components[19], 41);
assertVerifierComponent((Pattern) components[20], 48);
assertVerifierComponent((Pattern) components[21], 49);
assertVerifierComponent((Pattern) components[22], 50);
assertVerifierComponent((Pattern) components[23], 39);
assertVerifierComponent((Pattern) components[24], 40);
assertVerifierComponent((Pattern) components[25], 41);
assertVerifierComponent((NumberRestriction) components[26], 48);
assertVerifierComponent((NumberRestriction) components[27], 49);
assertVerifierComponent((NumberRestriction) components[28], 50);
assertVerifierComponent((NumberRestriction) components[29], 39);
assertVerifierComponent((NumberRestriction) components[30], 40);
assertVerifierComponent((NumberRestriction) components[31], 41);
assertVerifierComponent((NumberRestriction) components[32], 41);
assertVerifierComponent((VerifierRule) components[33], 46);
assertVerifierComponent((VerifierRule) components[34], 37);
assertVerifierComponent((RulePackage) components[35], 17);
assertVerifierComponent((SubPattern) components[36], 48);
assertVerifierComponent((SubPattern) components[37], 49);
assertVerifierComponent((SubPattern) components[38], 50);
assertVerifierComponent((SubPattern) components[39], 39);
assertVerifierComponent((SubPattern) components[40], 40);
assertVerifierComponent((SubPattern) components[41], 41);
assertVerifierComponent((SubRule) components[42], 46);
assertVerifierComponent((SubRule) components[43], 37);
assertVerifierComponent((WorkingMemory) components[44], -1);
}
use of org.drools.drl.ast.descr.PackageDescr in project drools by kiegroup.
the class KnowledgeBuilderTest method createRule.
private RuleImpl createRule(final ConditionalElementDescr ceDescr, final KnowledgeBuilderImpl builder, final String consequence) throws Exception {
final PackageDescr packageDescr = new PackageDescr("p1");
final RuleDescr ruleDescr = new RuleDescr("rule-1");
packageDescr.addRule(ruleDescr);
final AndDescr lhs = new AndDescr();
ruleDescr.setLhs(lhs);
lhs.addDescr((BaseDescr) ceDescr);
final PatternDescr patternDescr = new PatternDescr(Cheese.class.getName(), "stilton");
patternDescr.addConstraint(new ExprConstraintDescr("type == \"stilton\" "));
ceDescr.addDescr(patternDescr);
ruleDescr.setConsequence(consequence);
builder.addPackage(packageDescr);
InternalKnowledgePackage pkg = builder.getPackage(packageDescr.getName());
final RuleImpl rule = pkg.getRule("rule-1");
assertEquals("rule-1", rule.getName());
return rule;
}
Aggregations