use of org.drools.mvel.compiler.Cheese in project drools by kiegroup.
the class DateComparisonTest method testDateComparisonThan.
@Test
public void testDateComparisonThan() throws Exception {
String str = "";
str += "package org.drools.mvel.compiler;\n";
str += "global java.util.List results;\n";
str += "rule \"test date greater than\"\n";
str += " when\n";
str += " $c : Cheese(type == \"Yesterday\")\n";
str += " Cheese(type == \"Tomorrow\", usedBy > ($c.usedBy))\n";
str += " then\n";
str += " results.add( \"test date greater than\" );\n";
str += "end\n";
str += "rule \"test date less than\"\n";
str += " when\n";
str += " $c : Cheese(type == \"Tomorrow\")\n";
str += " Cheese(type == \"Yesterday\", usedBy < ($c.usedBy));\n";
str += " then\n";
str += " results.add( \"test date less than\" );\n";
str += "end\n";
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, str);
KieSession ksession = kbase.newKieSession();
List<String> results = new ArrayList<String>();
ksession.setGlobal("results", results);
// go !
Cheese yesterday = new Cheese("Yesterday");
yesterday.setUsedBy(yesterday());
Cheese tomorrow = new Cheese("Tomorrow");
tomorrow.setUsedBy(tomorrow());
ksession.insert(yesterday);
ksession.insert(tomorrow);
ksession.fireAllRules();
assertEquals(2, results.size());
assertTrue(results.contains("test date greater than"));
assertTrue(results.contains("test date less than"));
}
use of org.drools.mvel.compiler.Cheese in project drools by kiegroup.
the class DateComparisonTest method testDateComparisonAfterWithThisBinding.
@Test
public void testDateComparisonAfterWithThisBinding() throws Exception {
String str = "";
str += "package org.drools.mvel.compiler;\n";
str += "global java.util.List results;\n";
str += "rule \"test date greater than\"\n";
str += " when\n";
str += " Cheese(type == \"Yesterday\", $c: this)\n";
str += " Cheese(type == \"Tomorrow\", $c.usedBy before usedBy)\n";
str += " then\n";
str += " results.add( \"test date greater than\" );\n";
str += "end\n";
str += "rule \"test date less than\"\n";
str += " when\n";
str += " Cheese(type == \"Tomorrow\", $c: this)\n";
str += " Cheese(type == \"Yesterday\", $c.usedBy after usedBy);\n";
str += " then\n";
str += " results.add( \"test date less than\" );\n";
str += "end\n";
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, str);
KieSession ksession = kbase.newKieSession();
List<String> results = new ArrayList<String>();
ksession.setGlobal("results", results);
// go !
Cheese yesterday = new Cheese("Yesterday");
yesterday.setUsedBy(yesterday());
Cheese tomorrow = new Cheese("Tomorrow");
tomorrow.setUsedBy(tomorrow());
ksession.insert(yesterday);
ksession.insert(tomorrow);
ksession.fireAllRules();
assertEquals(2, results.size());
assertTrue(results.contains("test date greater than"));
assertTrue(results.contains("test date less than"));
}
use of org.drools.mvel.compiler.Cheese in project drools by kiegroup.
the class DateComparisonTest method testDateComparisonAfter.
@Test
public void testDateComparisonAfter() throws Exception {
String str = "";
str += "package org.drools.mvel.compiler;\n";
str += "global java.util.List results;\n";
str += "rule \"test date greater than\"\n";
str += " when\n";
str += " $c : Cheese(type == \"Yesterday\")\n";
str += " Cheese(type == \"Tomorrow\", $c.usedBy before usedBy)\n";
str += " then\n";
str += " results.add( \"test date greater than\" );\n";
str += "end\n";
str += "rule \"test date less than\"\n";
str += " when\n";
str += " $c : Cheese(type == \"Tomorrow\")\n";
str += " Cheese(type == \"Yesterday\", $c.usedBy after usedBy);\n";
str += " then\n";
str += " results.add( \"test date less than\" );\n";
str += "end\n";
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, str);
KieSession ksession = kbase.newKieSession();
List<String> results = new ArrayList<String>();
ksession.setGlobal("results", results);
// go !
Cheese yesterday = new Cheese("Yesterday");
yesterday.setUsedBy(yesterday());
Cheese tomorrow = new Cheese("Tomorrow");
tomorrow.setUsedBy(tomorrow());
ksession.insert(yesterday);
ksession.insert(tomorrow);
ksession.fireAllRules();
assertEquals(2, results.size());
assertTrue(results.contains("test date greater than"));
assertTrue(results.contains("test date less than"));
}
use of org.drools.mvel.compiler.Cheese in project drools by kiegroup.
the class SessionInspectorTest method testGetSessionInfo.
@Test
public void testGetSessionInfo() {
KieBase kbase = KieBaseUtil.getKieBaseFromClasspathResources(this.getClass(), kieBaseTestConfiguration, "org/drools/mvel/integrationtests/test_SubNetworks.drl", "org/drools/mvel/integrationtests/test_AccumulateWithFromChaining.drl", "org/drools/mvel/integrationtests/test_CollectResultsBetaConstraint.drl", "org/drools/mvel/integrationtests/test_QueryMemoryLeak.drl");
KieSession ksession = kbase.newKieSession();
ksession.setGlobal("results", new ArrayList<Object>());
ksession.insert(new Dimension(100, 50));
ksession.insert(new Dimension(130, 80));
ksession.insert(new Dimension(50, 40));
ksession.insert(new Dimension(50, 40));
Cheesery cheesery = new Cheesery();
cheesery.addCheese(new Cheese("brie", 10));
cheesery.addCheese(new Cheese("brie", 10));
cheesery.addCheese(new Cheese("brie", 10));
cheesery.addCheese(new Cheese("brie", 10));
cheesery.addCheese(new Cheese("muzzarella", 10));
cheesery.addCheese(new Cheese("muzzarella", 10));
cheesery.addCheese(new Cheese("muzzarella", 10));
cheesery.addCheese(new Cheese("muzzarella", 10));
cheesery.addCheese(new Cheese("muzzarella", 10));
cheesery.addCheese(new Cheese("muzzarella", 10));
cheesery.addCheese(new Cheese("muzzarella", 10));
cheesery.addCheese(new Cheese("stilton", 10));
cheesery.addCheese(new Cheese("stilton", 10));
cheesery.addCheese(new Cheese("stilton", 10));
cheesery.addCheese(new Cheese("stilton", 10));
cheesery.addCheese(new Cheese("stilton", 10));
cheesery.addCheese(new Cheese("stilton", 10));
cheesery.addCheese(new Cheese("stilton", 10));
ksession.insert(cheesery);
ksession.insert(new Person("Bob", "muzzarella"));
ksession.insert(new Person("Mark", "brie"));
ksession.insert(new Cheese("brie", 10));
ksession.insert(new Cheese("brie", 10));
ksession.insert(new Cheese("brie", 10));
ksession.insert(new Cheese("brie", 10));
ksession.insert(new Cheese("muzzarella", 10));
ksession.insert(new Cheese("muzzarella", 10));
ksession.insert(new Cheese("muzzarella", 10));
ksession.insert(new Cheese("muzzarella", 10));
ksession.insert(new Cheese("Stilton", 10));
ksession.insert(new Cheese("Stilton", 10));
ksession.insert(new Cheese("Stilton", 10));
ksession.insert(new Double(10));
ksession.insert(new Double(11));
ksession.insert(new Double(12));
ksession.insert(new Double(13));
ksession.insert(new Double(14));
ksession.insert(new Integer(15));
ksession.insert(new Integer(16));
ksession.insert(new Integer(17));
ksession.insert(new Integer(18));
FactHandle handle = ksession.insert(new Worker());
ksession.retract(handle);
SessionInspector inspector = new SessionInspector(ksession);
StatefulKnowledgeSessionInfo info = inspector.getSessionInfo();
String report = SessionReporter.generateReport("simple", info, null);
assertNotNull(report);
}
use of org.drools.mvel.compiler.Cheese in project drools by kiegroup.
the class SessionInspectorTest method testGetSessionInfoWithCustomTemplate.
@Test
public void testGetSessionInfoWithCustomTemplate() {
if (System.getProperty("java.vendor").toUpperCase().contains("IBM")) {
// Does not work in the IBM JDK due to a bug in MVEL
return;
}
KieBase kbase = KieBaseUtil.getKieBaseFromClasspathResources(this.getClass(), kieBaseTestConfiguration, "org/drools/mvel/integrationtests/test_SubNetworks.drl", "org/drools/mvel/integrationtests/test_AccumulateWithFromChaining.drl", "org/drools/mvel/integrationtests/test_CollectResultsBetaConstraint.drl", "org/drools/mvel/integrationtests/test_QueryMemoryLeak.drl");
KieSession ksession = kbase.newKieSession();
ksession.setGlobal("results", new ArrayList<Object>());
ksession.insert(new Dimension(100, 50));
ksession.insert(new Dimension(130, 80));
ksession.insert(new Dimension(50, 40));
ksession.insert(new Dimension(50, 40));
Cheesery cheesery = new Cheesery();
cheesery.addCheese(new Cheese("brie", 10));
cheesery.addCheese(new Cheese("brie", 10));
cheesery.addCheese(new Cheese("brie", 10));
cheesery.addCheese(new Cheese("brie", 10));
cheesery.addCheese(new Cheese("muzzarella", 10));
cheesery.addCheese(new Cheese("muzzarella", 10));
cheesery.addCheese(new Cheese("muzzarella", 10));
cheesery.addCheese(new Cheese("muzzarella", 10));
cheesery.addCheese(new Cheese("muzzarella", 10));
cheesery.addCheese(new Cheese("muzzarella", 10));
cheesery.addCheese(new Cheese("muzzarella", 10));
cheesery.addCheese(new Cheese("stilton", 10));
cheesery.addCheese(new Cheese("stilton", 10));
cheesery.addCheese(new Cheese("stilton", 10));
cheesery.addCheese(new Cheese("stilton", 10));
cheesery.addCheese(new Cheese("stilton", 10));
cheesery.addCheese(new Cheese("stilton", 10));
cheesery.addCheese(new Cheese("stilton", 10));
ksession.insert(cheesery);
ksession.insert(new Person("Bob", "muzzarella"));
ksession.insert(new Person("Mark", "brie"));
ksession.insert(new Cheese("brie", 10));
ksession.insert(new Cheese("brie", 10));
ksession.insert(new Cheese("brie", 10));
ksession.insert(new Cheese("brie", 10));
ksession.insert(new Cheese("muzzarella", 10));
ksession.insert(new Cheese("muzzarella", 10));
ksession.insert(new Cheese("muzzarella", 10));
ksession.insert(new Cheese("muzzarella", 10));
ksession.insert(new Cheese("Stilton", 10));
ksession.insert(new Cheese("Stilton", 10));
ksession.insert(new Cheese("Stilton", 10));
ksession.insert(new Double(10));
ksession.insert(new Double(11));
ksession.insert(new Double(12));
ksession.insert(new Double(13));
ksession.insert(new Double(14));
ksession.insert(new Integer(15));
ksession.insert(new Integer(16));
ksession.insert(new Integer(17));
ksession.insert(new Integer(18));
FactHandle handle = ksession.insert(new Worker());
ksession.retract(handle);
SessionInspector inspector = new SessionInspector(ksession);
StatefulKnowledgeSessionInfo info = inspector.getSessionInfo();
SessionReporter.addNamedTemplate("topten", getClass().getResourceAsStream("customreports.mvel"));
String report = SessionReporter.generateReport("topten", info, null);
assertNotNull(report);
}
Aggregations