Search in sources :

Example 71 with Person

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));
}
Also used : KieBase(org.kie.api.KieBase) ArrayList(java.util.ArrayList) KieSession(org.kie.api.runtime.KieSession) Cheese(org.drools.mvel.compiler.Cheese) Person(org.drools.mvel.compiler.Person) Test(org.junit.Test)

Example 72 with Person

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"));
}
Also used : Address(org.drools.mvel.compiler.Address) HashMap(java.util.HashMap) AfterMatchFiredEvent(org.kie.api.event.rule.AfterMatchFiredEvent) WorkingMemoryConsoleLogger(org.drools.kiesession.audit.WorkingMemoryConsoleLogger) KieBase(org.kie.api.KieBase) AfterMatchFiredEvent(org.kie.api.event.rule.AfterMatchFiredEvent) KieSession(org.kie.api.runtime.KieSession) HashMap(java.util.HashMap) Map(java.util.Map) Person(org.drools.mvel.compiler.Person) Test(org.junit.Test)

Example 73 with Person

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());
}
Also used : KieBase(org.kie.api.KieBase) ArrayList(java.util.ArrayList) KieSession(org.kie.api.runtime.KieSession) List(java.util.List) ArrayList(java.util.ArrayList) Cheese(org.drools.mvel.compiler.Cheese) Person(org.drools.mvel.compiler.Person) Test(org.junit.Test)

Example 74 with Person

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();
}
Also used : KieBase(org.kie.api.KieBase) Resource(org.kie.api.io.Resource) ArrayList(java.util.ArrayList) KieSession(org.kie.api.runtime.KieSession) I18nPerson(org.drools.mvel.compiler.I18nPerson) Person(org.drools.mvel.compiler.Person) Test(org.junit.Test)

Example 75 with Person

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();
}
Also used : KieBase(org.kie.api.KieBase) KieSession(org.kie.api.runtime.KieSession) I18nPerson(org.drools.mvel.compiler.I18nPerson) Person(org.drools.mvel.compiler.Person) Test(org.junit.Test)

Aggregations

Person (org.drools.mvel.compiler.Person)196 Test (org.junit.Test)185 KieSession (org.kie.api.runtime.KieSession)178 KieBase (org.kie.api.KieBase)171 ArrayList (java.util.ArrayList)98 List (java.util.List)72 Cheese (org.drools.mvel.compiler.Cheese)46 FactHandle (org.kie.api.runtime.rule.FactHandle)38 StatelessKieSession (org.kie.api.runtime.StatelessKieSession)34 Address (org.drools.mvel.compiler.Address)33 FactWithString (org.drools.mvel.integrationtests.facts.FactWithString)24 InternalFactHandle (org.drools.core.common.InternalFactHandle)23 KiePackage (org.kie.api.definition.KiePackage)18 InternalKnowledgeBase (org.drools.kiesession.rulebase.InternalKnowledgeBase)16 IteratorToList (org.drools.mvel.integrationtests.IteratorToList)15 HashMap (java.util.HashMap)12 ObjectTypeNode (org.drools.core.reteoo.ObjectTypeNode)12 Collection (java.util.Collection)11 DefaultFactHandle (org.drools.core.common.DefaultFactHandle)8 AlphaNode (org.drools.core.reteoo.AlphaNode)8