use of org.drools.compiler.Address in project drools by kiegroup.
the class CustomOperatorTest method testCustomOperatorUsingCollections.
@Test
public void testCustomOperatorUsingCollections() {
String str = "import org.drools.compiler.Person\n" + "import org.drools.compiler.Address\n" + "rule R when\n" + " $alice : Person(name == \"Alice\")\n" + " $bob : Person(name == \"Bob\", addresses supersetOf $alice.addresses)\n" + "then\n" + "end\n";
KnowledgeBuilderConfiguration builderConf = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
builderConf.setOption(EvaluatorOption.get("supersetOf", new SupersetOfEvaluatorDefinition()));
KieBase kbase = loadKnowledgeBaseFromString(builderConf, str);
KieSession ksession = kbase.newKieSession();
Person alice = new Person("Alice", 30);
alice.addAddress(new Address("Large Street", "BigTown", "12345"));
Person bob = new Person("Bob", 30);
bob.addAddress(new Address("Large Street", "BigTown", "12345"));
bob.addAddress(new Address("Long Street", "SmallTown", "54321"));
ksession.insert(alice);
ksession.insert(bob);
assertEquals(1, ksession.fireAllRules());
}
use of org.drools.compiler.Address in project drools by kiegroup.
the class NullSafeDereferencingTest method testDoubleNullSafe.
@Test
public void testDoubleNullSafe() {
String str = "import org.drools.compiler.*;\n" + "rule R1 when\n" + " Person( address!.street!.length > 15 ) \n" + "then\n" + "end";
KieBase kbase = loadKnowledgeBaseFromString(str);
KieSession ksession = kbase.newKieSession();
ksession.insert(new Person("Mario", 38));
Person mark = new Person("Mark", 37);
mark.setAddress(new Address("Main Street"));
ksession.insert(mark);
Person edson = new Person("Edson", 34);
edson.setAddress(new Address(null));
ksession.insert(edson);
Person alex = new Person("Alex", 34);
alex.setAddress(new Address("The Main Very Big Street"));
ksession.insert(alex);
assertEquals(1, ksession.fireAllRules());
ksession.dispose();
}
use of org.drools.compiler.Address in project drools by kiegroup.
the class NullSafeDereferencingTest method testNullSafeNullComparison.
@Test
public void testNullSafeNullComparison() {
String str = "import org.drools.compiler.*;\n" + "rule R1 when\n" + " Person( address!.street == null ) \n" + "then\n" + "end";
KieBase kbase = loadKnowledgeBaseFromString(str);
KieSession ksession = kbase.newKieSession();
ksession.insert(new Person("Mario", 38));
Person mark = new Person("Mark", 37);
mark.setAddress(new Address("Main Street"));
ksession.insert(mark);
Person edson = new Person("Edson", 34);
edson.setAddress(new Address(null));
ksession.insert(edson);
assertEquals(1, ksession.fireAllRules());
ksession.dispose();
}
use of org.drools.compiler.Address in project drools by kiegroup.
the class NullSafeDereferencingTest method testNullSafeNullComparisonReverseComplex.
@Test
public void testNullSafeNullComparisonReverseComplex() {
// DROOLS-82
String str = "import org.drools.compiler.*;\n" + "rule R1 when\n" + " Person( \"Main\".equalsIgnoreCase(address!.street!.substring(0, address!.street!.indexOf(' '))) )\n" + "then\n" + "end";
KieBase kbase = loadKnowledgeBaseFromString(str);
KieSession ksession = kbase.newKieSession();
ksession.insert(new Person("Mario", 38));
Person mark = new Person("Mark", 37);
mark.setAddress(new Address("Main Street"));
ksession.insert(mark);
Person edson = new Person("Edson", 34);
edson.setAddress(new Address(null));
ksession.insert(edson);
assertEquals(1, ksession.fireAllRules());
ksession.dispose();
}
use of org.drools.compiler.Address in project drools by kiegroup.
the class NullSafeDereferencingTest method testNullSafeBinding.
@Test
public void testNullSafeBinding() {
String str = "import org.drools.compiler.*;\n" + "rule R1 when\n" + " Person( $streetName : address!.street ) \n" + "then\n" + "end";
KieBase kbase = loadKnowledgeBaseFromString(str);
KieSession ksession = kbase.newKieSession();
ksession.insert(new Person("Mario", 38));
Person mark = new Person("Mark", 37);
mark.setAddress(new Address("Main Street"));
ksession.insert(mark);
Person edson = new Person("Edson", 34);
edson.setAddress(new Address(null));
ksession.insert(edson);
assertEquals(2, ksession.fireAllRules());
ksession.dispose();
}
Aggregations