use of org.drools.compiler.Mailbox in project drools by kiegroup.
the class ConstraintsTest method testExpressionConstraints2.
@Test
public void testExpressionConstraints2() {
final String drl = "package org.drools.compiler.integrationtests\n" + "import " + Mailbox.FolderType.class.getCanonicalName() + ";\n" + "import " + Mailbox.class.getCanonicalName() + ";\n" + "rule R1\n" + " dialect \"mvel\"\n" + " when\n" + " $m : Mailbox( \n" + " $me : owneremail,\n" + " recentContacts[Mailbox.TEST_EMAIL] != null,\n" + " recentContacts[\"me@test.com\"] != null,\n" + " $d1 : recentContacts[Mailbox.TEST_EMAIL],\n" + " $d2 : recentContacts[\"me@test.com\"],\n" + " recentContacts.get(owneremail) != null,\n" + " recentContacts.get($me) != null,\n" + " recentContacts[$me] != null,\n" + " $d3: recentContacts.get(owneremail),\n" + " // Waiting for MVEL fixes for the following 2 scenarios" + " // recentContacts[owneremail] != null,\n" + " // recentContacts[getOwneremail()] != null,\n" + " 0 < 1\n" + " )\n" + " then\n" + "end\n";
final KieBase kbase = loadKnowledgeBaseFromString(drl);
final KieSession ksession = createKnowledgeSession(kbase);
final Mailbox mbox = new Mailbox(Mailbox.TEST_EMAIL);
final Message message = new Message();
message.setMessage("Welcome");
message.setStatus(Message.HELLO);
mbox.getFolder(FolderType.INBOX).add(message);
ksession.insert(mbox);
ksession.insert(message);
final int rules = ksession.fireAllRules();
assertEquals(1, rules);
}
use of org.drools.compiler.Mailbox in project drools by kiegroup.
the class ConstraintsTest method testExpressionConstraints4.
@Test
public void testExpressionConstraints4() {
final String drl = "package org.drools.compiler.integrationtests\n" + "import " + Mailbox.FolderType.class.getCanonicalName() + ";\n" + "import " + Mailbox.class.getCanonicalName() + ";\n" + "rule R1\n" + " dialect \"mvel\"\n" + " when\n" + " Mailbox( owneremail == 'bob@mail' || owneremail == 'john@mail' )\n" + " then\n" + "end\n" + "rule R2\n" + " dialect \"mvel\"\n" + " when\n" + " Mailbox( ( owneremail == 'bob@mail' ) || ( owneremail == 'john@mail' ) )\n" + " then\n" + "end\n";
final KieBase kbase = loadKnowledgeBaseFromString(drl);
final KieSession ksession = createKnowledgeSession(kbase);
ksession.insert(new Mailbox("foo@mail"));
int rules = ksession.fireAllRules();
assertEquals(0, rules);
ksession.insert(new Mailbox("john@mail"));
rules = ksession.fireAllRules();
assertEquals(2, rules);
}
use of org.drools.compiler.Mailbox in project drools by kiegroup.
the class ConstraintsTest method testExpressionConstraints1.
@Test
public void testExpressionConstraints1() {
final String drl = "package org.drools.compiler.integrationtests\n" + "import " + Mailbox.FolderType.class.getCanonicalName() + ";\n" + "import " + Mailbox.class.getCanonicalName() + ";\n" + "rule R1\n" + " dialect \"mvel\"\n" + " when\n" + " $m : Mailbox( \n" + " $folderType : getDefaultFolderType(),\n" + " FolderType.INBOX == $folderType,\n" + " $folderType == FolderType.INBOX,\n" + " $mailForFolder2 : getMailTypeForFolderType(getDefaultFolderType()),\n" + " FolderType.SENT != getDefaultFolderType(), \n" + " getDefaultFolderType() != FolderType.SENT, \n" + " getMailTypeForFolderType($folderType) == MailType.WORK,\n" + " 1 > 0\n" + " )\n" + " then\n" + "end\n";
final KieBase kbase = loadKnowledgeBaseFromString(drl);
final KieSession ksession = createKnowledgeSession(kbase);
final Mailbox mbox = new Mailbox(Mailbox.TEST_EMAIL);
final Message message = new Message();
message.setMessage("Welcome");
message.setStatus(Message.HELLO);
mbox.getFolder(FolderType.INBOX).add(message);
ksession.insert(mbox);
ksession.insert(message);
final int rules = ksession.fireAllRules();
assertEquals(1, rules);
}
use of org.drools.compiler.Mailbox in project drools by kiegroup.
the class ConstraintsTest method testExpressionConstraints3.
@Test
public void testExpressionConstraints3() {
final String drl = "package org.drools.compiler.integrationtests\n" + "import " + Mailbox.FolderType.class.getCanonicalName() + ";\n" + "import " + Mailbox.class.getCanonicalName() + ";\n" + "rule R1\n" + " dialect \"mvel\"\n" + " when\n" + " $m : Mailbox( \n" + " $type1 : FolderType.INBOX,\n" + " $type2 : org.drools.compiler.Mailbox$FolderType.INBOX,\n" + " $work1 : getFolder(null),\n" + " $work2 : getFolder(org.drools.compiler.Mailbox$FolderType.INBOX),\n" + " $work3 : getFolder(FolderType.INBOX),\n" + " getFolder($type1) != null,\n" + " getFolder($type1).size() > 0,\n" + " ! getFolder($type1).isEmpty(),\n" + " $work6 : folders,\n" + " $work7 : folders.size,\n" + " //folders.containsKey(FolderType.INBOX),\n" + " folders.containsKey(org.drools.compiler.Mailbox$FolderType.INBOX),\n" + " folders.containsKey($type2),\n" + " !folders.isEmpty,\n" + " getFolder(FolderType.INBOX) != null,\n" + " //$v1 : folders[FolderType.INBOX], \n" + " //$v2 : folders[com.sample.Mailbox.FolderType.INBOX],\n" + " //$v3 : folders[com.sample.Mailbox$FolderType.INBOX],\n" + " //folders[$type1]!=null,\n" + " //folders.get(FolderType.INBOX)!=null, // sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl cannot be cast to java.lang.Class\n" + " //folders.isEmpty(), // SAME ERROR\n" + " 0 < 1\n" + " )\n" + " then\n" + "end";
final KieBase kbase = loadKnowledgeBaseFromString(drl);
final KieSession ksession = createKnowledgeSession(kbase);
final Mailbox mbox = new Mailbox(Mailbox.TEST_EMAIL);
final Message message = new Message();
message.setMessage("Welcome");
message.setStatus(Message.HELLO);
mbox.getFolder(FolderType.INBOX).add(message);
ksession.insert(mbox);
ksession.insert(message);
final int rules = ksession.fireAllRules();
assertEquals(1, rules);
}
Aggregations