use of org.drools.testcoverage.common.model.Cheese in project drools by kiegroup.
the class NestingTest method testNestedConditionalElements.
@Test
public void testNestedConditionalElements() {
final String drl = "package org.drools.compiler.integrationtests.drl;\n" + "import " + Person.class.getCanonicalName() + ";\n" + "import " + Cheese.class.getCanonicalName() + ";\n" + "import " + State.class.getCanonicalName() + ";\n" + "global java.util.List results\n" + "\n" + "rule \"test nested CEs\" salience 100\n" + " when\n" + " not ( State( $state : state ) and\n" + " not( Person( name == $state, $likes : likes ) and\n" + " Cheese( type == $likes ) ) )\n" + " then\n" + " results.add(\"OK1\");\n" + "end";
final KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("nesting-test", kieBaseTestConfiguration, drl);
final KieSession ksession = kbase.newKieSession();
try {
final List list = new ArrayList();
ksession.setGlobal("results", list);
final State state = new State("SP");
ksession.insert(state);
final Person bob = new Person(state.getState());
bob.setLikes("stilton");
ksession.insert(bob);
ksession.fireAllRules();
assertEquals(0, list.size());
ksession.insert(new Cheese(bob.getLikes(), 10));
ksession.fireAllRules();
assertEquals(1, list.size());
} finally {
ksession.dispose();
}
}
use of org.drools.testcoverage.common.model.Cheese in project drools by kiegroup.
the class PatternTest method testImplicitDeclarations.
@Test
public void testImplicitDeclarations() {
final String drl = "package org.drools.compiler.integrationtests.drl;\n" + "import " + Cheese.class.getCanonicalName() + ";\n" + "global java.util.List results;\n" + "\n" + "global java.lang.Double factor;\n" + "\n" + "rule \"test implicit declarations\"\n" + " when\n" + " // implicit binding\n" + " Cheese( type == \"stilton\", eval( price < 20*factor ) )\n" + " // late declaration\n" + " Cheese( price < ( price * factor ), eval( price < price * factor ), price : price )\n" + " then\n" + " results.add( \"Rule Fired\" );\n" + "end";
final KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("pattern-test", kieBaseTestConfiguration, drl);
final KieSession ksession = kbase.newKieSession();
try {
final List results = new ArrayList();
ksession.setGlobal("results", results);
ksession.setGlobal("factor", 1.2);
final Cheese cheese = new Cheese("stilton", 10);
ksession.insert(cheese);
ksession.fireAllRules();
assertEquals(1, results.size());
} finally {
ksession.dispose();
}
}
use of org.drools.testcoverage.common.model.Cheese in project drools by kiegroup.
the class PatternTest method testSelfReference2.
@Test
public void testSelfReference2() {
final String drl = "package org.drools.compiler.integrationtests.drl;\n" + "import " + Cheese.class.getCanonicalName() + ";\n" + "global java.util.List results;\n" + "\n" + "rule \"reversed references\"\n" + "when\n" + " $cheese : Cheese( )\n" + " Cheese( this != $cheese )\n" + "then\n" + " results.add( $cheese );\n" + "end";
final KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("pattern-test", kieBaseTestConfiguration, drl);
final KieSession ksession = kbase.newKieSession();
try {
final List results = new ArrayList();
ksession.setGlobal("results", results);
ksession.insert(new Cheese());
ksession.fireAllRules();
assertEquals(0, results.size());
} finally {
ksession.dispose();
}
}
use of org.drools.testcoverage.common.model.Cheese in project drools by kiegroup.
the class PatternTest method testEmptyPattern.
@Test
public void testEmptyPattern() {
final String drl = "package org.drools.compiler.integrationtests.drl;\n" + " \n" + "import " + Cheese.class.getCanonicalName() + ";\n" + "\n" + "global java.util.List list;\n" + " \n" + "rule \"simple rule\"\n" + " when\n" + " cheese : Cheese( )\n" + " then\n" + " list.add( new Integer(5) );\n" + "end";
final KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("pattern-test", kieBaseTestConfiguration, drl);
final KieSession session = kbase.newKieSession();
try {
final List list = new ArrayList();
session.setGlobal("list", list);
final Cheese stilton = new Cheese("stilton", 5);
session.insert(stilton);
session.fireAllRules();
assertEquals(5, ((List) session.getGlobal("list")).get(0));
} finally {
session.dispose();
}
}
use of org.drools.testcoverage.common.model.Cheese in project drools by kiegroup.
the class PatternTest method testQualifiedFieldReference.
@Test
public void testQualifiedFieldReference() {
final String drl = "package org.drools.compiler.integrationtests.drl;\n" + "import " + Person.class.getCanonicalName() + ";\n" + "import " + Cheese.class.getCanonicalName() + ";\n" + "global java.util.List results;\n" + "\n" + "rule \"test qualified field reference\"\n" + "when\n" + " $p : Person( $p.name == \"bob\" );\n" + " $c : Cheese( $c.type == $p.likes )\n" + "then\n" + " results.add( $p );\n" + "end";
final KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("pattern-test", kieBaseTestConfiguration, drl);
final KieSession ksession = kbase.newKieSession();
try {
final List list = new ArrayList();
ksession.setGlobal("results", list);
final Person bob = new Person("bob");
bob.setLikes("stilton");
final Cheese stilton = new Cheese("stilton", 12);
ksession.insert(bob);
ksession.insert(stilton);
ksession.fireAllRules();
assertEquals(1, list.size());
assertEquals(bob, list.get(0));
} finally {
ksession.dispose();
}
}
Aggregations