use of org.drools.mvel.compiler.Person in project drools by kiegroup.
the class JBRULESTest method testJBRules2055.
@Test
public void testJBRules2055() {
KieBase kbase = KieBaseUtil.getKieBaseFromClasspathResources(this.getClass(), kieBaseTestConfiguration, "test_JBRules2055.drl");
KieSession ksession = kbase.newKieSession();
final List<String> results = new ArrayList<String>();
ksession.setGlobal("results", results);
ksession.insert(new Cheese("stilton"));
ksession.insert(new Cheese("brie"));
ksession.insert(new Cheese("muzzarella"));
ksession.insert(new Person("bob", "stilton"));
ksession.fireAllRules();
assertEquals(2, results.size());
assertEquals("stilton", results.get(0));
assertEquals("brie", results.get(1));
}
use of org.drools.mvel.compiler.Person in project drools by kiegroup.
the class MapConstraintTest method testMapNullConstraint.
@Test
public void testMapNullConstraint() throws Exception {
KieBase kbase = KieBaseUtil.getKieBaseFromClasspathResources(getClass(), kieBaseTestConfiguration, "test_mapNullConstraints.drl");
KieSession ksession = kbase.newKieSession();
final org.kie.api.event.rule.AgendaEventListener ael = mock(org.kie.api.event.rule.AgendaEventListener.class);
ksession.addEventListener(ael);
new WorkingMemoryConsoleLogger((WorkingMemory) ksession);
final Map addresses = new HashMap();
addresses.put("home", new Address("home street"));
final Person bob = new Person("Bob");
bob.setNamedAddresses(addresses);
ksession.insert(bob);
ksession.fireAllRules();
final ArgumentCaptor<AfterMatchFiredEvent> arg = ArgumentCaptor.forClass(org.kie.api.event.rule.AfterMatchFiredEvent.class);
verify(ael, times(4)).afterMatchFired(arg.capture());
org.kie.api.event.rule.AfterMatchFiredEvent aaf = arg.getAllValues().get(0);
assertThat(aaf.getMatch().getRule().getName(), is("1. home != null"));
aaf = arg.getAllValues().get(1);
assertThat(aaf.getMatch().getRule().getName(), is("2. not home == null"));
aaf = arg.getAllValues().get(2);
assertThat(aaf.getMatch().getRule().getName(), is("7. work == null"));
aaf = arg.getAllValues().get(3);
assertThat(aaf.getMatch().getRule().getName(), is("8. not work != null"));
}
use of org.drools.mvel.compiler.Person in project drools by kiegroup.
the class FirstOrderLogicTest method testExistsWithBinding.
@Test
public void testExistsWithBinding() throws Exception {
KieBase kbase = KieBaseUtil.getKieBaseFromClasspathResources(getClass(), kieBaseTestConfiguration, "test_ExistsWithBindings.drl");
KieSession wm = kbase.newKieSession();
final List list = new ArrayList();
wm.setGlobal("results", list);
final Cheese c = new Cheese("stilton", 10);
final Person p = new Person("Mark", "stilton");
wm.insert(c);
wm.insert(p);
wm.fireAllRules();
assertTrue(list.contains(c.getType()));
assertEquals(1, list.size());
}
use of org.drools.mvel.compiler.Person in project drools by kiegroup.
the class I18nTest method testIdeographicSpaceInDSL.
@Test
public void testIdeographicSpaceInDSL() throws Exception {
// JBRULES-3723
String dsl = "// Testing 'IDEOGRAPHIC SPACE' (U+3000)\n" + "[when]名前が {firstName}=Person(name==\"山本 {firstName}\")\n" + "[then]メッセージ {message}=messages.add(\"メッセージ \" + {message});";
String dslr = "package test\n" + "\n" + "import org.drools.mvel.compiler.Person\n" + "\n" + "expander test_I18n.dsl\n" + "\n" + "global java.util.List messages;\n" + "\n" + "rule \"IDEOGRAPHIC SPACE test\"\n" + " when\n" + " // Person(name==\"山本 太郎\")\n" + " 名前が 太郎\n" + " then\n" + " // messages.add(\"メッセージ ルールにヒットしました\");\n" + " メッセージ \"ルールにヒットしました\"\n" + "end";
final Resource dslResource = ResourceFactory.newByteArrayResource(dsl.getBytes("UTF-8"));
dslResource.setResourceType(ResourceType.DSL);
dslResource.setTargetPath("src/main/resources/test.dsl");
final Resource dslrResource = ResourceFactory.newByteArrayResource(dslr.getBytes("UTF-8"));
dslrResource.setResourceType(ResourceType.DSLR);
dslrResource.setTargetPath("src/main/resources/test-rule.dslr");
final KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromResources("i18n-test", kieBaseTestConfiguration, dslResource, dslrResource);
final KieSession ksession = kbase.newKieSession();
List<String> messages = new ArrayList<>();
ksession.setGlobal("messages", messages);
Person person = new Person();
person.setName("山本 太郎");
ksession.insert(person);
ksession.fireAllRules();
assertTrue(messages.contains("メッセージ ルールにヒットしました"));
ksession.dispose();
}
use of org.drools.mvel.compiler.Person in project drools by kiegroup.
the class I18nTest method testMultibytePositonalQueryParam.
@Test
public void testMultibytePositonalQueryParam() {
// DROOLS-1619
String drl = "package org.drools.mvel.compiler.i18ntest;\n" + "import org.drools.mvel.compiler.Person;\n" + "\n" + "query testquery(int $a, Person $t)\n" + " $t := Person(age > $a)\n" + "end\n" + "\n" + "rule \"hoge\"\n" + " when\n" + " testquery(30, $あああ;)\n" + " then\n" + " System.out.println($あああ.getName());\n" + "end";
final KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("i18n-test", kieBaseTestConfiguration, drl);
final KieSession ksession = kbase.newKieSession();
Person p1 = new Person("John", 25);
Person p2 = new Person("Paul", 35);
ksession.insert(p1);
ksession.insert(p2);
int fired = ksession.fireAllRules();
assertEquals(1, fired);
ksession.dispose();
}
Aggregations