use of org.drools.testcoverage.common.model.Pet in project drools by kiegroup.
the class JoinNodeRangeIndexingTest method testMultipleFacts.
@Test
public void testMultipleFacts() {
final String drl = "import " + Person.class.getCanonicalName() + ";\n" + "import " + Pet.class.getCanonicalName() + ";\n" + "global java.util.Set result;\n" + "rule R1\n" + "when\n" + " $pet : Pet()\n" + " $person : Person( age > $pet.age )\n" + "then\n" + " result.add( $person.getName() + \" > \" + $pet.getName() );\n" + "end\n";
final KieBase kbase = getKieBaseWithRangeIndexOption(drl);
assertIndexedTrue(kbase, Person.class);
final KieSession ksession = kbase.newKieSession();
Set<String> result = new HashSet<>();
ksession.setGlobal("result", result);
try {
ksession.insert(new Pet("Charlie", 5));
ksession.insert(new Pet("Max", 10));
ksession.insert(new Pet("Buddy", 15));
ksession.insert(new Pet("Oscar", 20));
ksession.insert(new Person("John", 2));
ksession.insert(new Person("Paul", 10));
ksession.insert(new Person("George", 20));
ksession.insert(new Person("Ringo", 30));
assertEquals(8, ksession.fireAllRules());
Assertions.assertThat(result).containsExactlyInAnyOrder("Paul > Charlie", "George > Charlie", "George > Max", "George > Buddy", "Ringo > Charlie", "Ringo > Max", "Ringo > Buddy", "Ringo > Oscar");
} finally {
ksession.dispose();
}
}
use of org.drools.testcoverage.common.model.Pet in project drools by kiegroup.
the class JoinNodeRangeIndexingTest method testRangeIndexForJoin.
@Test
public void testRangeIndexForJoin() {
final String drl = "import " + Person.class.getCanonicalName() + ";\n" + "import " + Pet.class.getCanonicalName() + ";\n" + "rule R1\n" + "when\n" + " $pet : Pet()\n" + " Person( age > $pet.age )\n" + "then\n" + "end\n";
final KieBase kbase = getKieBaseWithRangeIndexOption(drl);
assertIndexedTrue(kbase, Person.class);
final KieSession ksession = kbase.newKieSession();
try {
ksession.insert(new Pet(PetType.CAT, 10));
ksession.insert(new Person("Paul", 20));
assertEquals(1, ksession.fireAllRules());
} finally {
ksession.dispose();
}
}
use of org.drools.testcoverage.common.model.Pet in project drools by kiegroup.
the class MemberOfTest method testMemberOfWithOr.
@Test
public void testMemberOfWithOr() {
final String drl = "package org.drools.compiler.integrationtests.operators;\n" + "import java.util.ArrayList;\n" + "import " + Person.class.getCanonicalName() + ";\n" + "rule \"Test Rule\"\n" + "when\n" + " $list: ArrayList() \n" + " ArrayList() \n" + " from collect( \n" + " Person( \n" + " ( \n" + " pet memberOf $list \n" + " ) || ( \n" + " pet == null \n" + " ) \n" + " ) \n" + " )\n" + "then\n" + " System.out.println(\"hello person\");\n" + "end";
final KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("member-of-test", kieBaseTestConfiguration, drl);
final KieSession session = kbase.newKieSession();
try {
final Person toni = new Person("Toni", 12);
toni.setPet(new Pet(Pet.PetType.CAT));
session.insert(new ArrayList());
session.insert(toni);
session.fireAllRules();
} finally {
session.dispose();
}
}
Aggregations