use of org.drools.mvel.compiler.Person in project drools by kiegroup.
the class NullSafeDereferencingTest method testNullSafeBinding.
@Test
public void testNullSafeBinding() {
String str = "import org.drools.mvel.compiler.*;\n" + "rule R1 when\n" + " Person( $streetName : address!.street ) \n" + "then\n" + "end";
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, 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();
}
use of org.drools.mvel.compiler.Person in project drools by kiegroup.
the class NullSafeDereferencingTest method testMixedNullSafes.
@Test
public void testMixedNullSafes() {
String str = "import org.drools.mvel.compiler.*;\n" + "rule R1 when\n" + " $p : Person( " + " address!.street!.length > 0 && ( address!.street!.length < 15 || > 20 && < 30 ) " + " && address!.zipCode!.length > 0 && address.zipCode == \"12345\" " + " ) \n" + "then\n" + " System.out.println( $p ); \n" + "end";
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, str);
KieSession ksession = kbase.newKieSession();
ksession.insert(new Person("Mario", 38));
Person mark = new Person("Mark", 37);
mark.setAddress(new Address("Main Street", null, "12345"));
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 Verrry Long Street"));
ksession.insert(alex);
Person frank = new Person("Frank", 24);
frank.setAddress(new Address("Long Street number 21", null, "12345"));
ksession.insert(frank);
assertEquals(2, ksession.fireAllRules());
ksession.dispose();
}
use of org.drools.mvel.compiler.Person in project drools by kiegroup.
the class NullSafeDereferencingTest method testNullSafeNullComparisonReverse.
@Test
public void testNullSafeNullComparisonReverse() {
// DROOLS-82
String str = "import org.drools.mvel.compiler.*;\n" + "rule R1 when\n" + " Person( \"Main Street\".equalsIgnoreCase(address!.street) )\n" + "then\n" + "end";
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, 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.mvel.compiler.Person in project drools by kiegroup.
the class NullSafeDereferencingTest method testNullSafeNullComparisonReverseComplex.
@Test
public void testNullSafeNullComparisonReverseComplex() {
// DROOLS-82
String str = "import org.drools.mvel.compiler.*;\n" + "rule R1 when\n" + " Person( \"Main\".equalsIgnoreCase(address!.street!.substring(0, address!.street!.indexOf(' '))) )\n" + "then\n" + "end";
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, 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.mvel.compiler.Person in project drools by kiegroup.
the class Misc2Test method testMvelConstraintErrorMessageOnBeta.
@Test
public void testMvelConstraintErrorMessageOnBeta() throws Exception {
// DROOLS-687
String drl = " import org.drools.mvel.compiler.Person; " + " import org.drools.mvel.compiler.Address; " + " rule 'hello person' " + " when " + " $s : String( ) " + " Person( address.street == $s ) " + " then " + " end " + "\n";
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, drl);
KieSession ks = kbase.newKieSession();
// address is null
Person john = new Person("John");
try {
ks.insert("abbey");
ks.insert(john);
ks.fireAllRules();
fail("Should throw an exception");
} catch (Exception e) {
assertTrue(e.getMessage().contains("hello person"));
}
}
Aggregations