use of org.drools.compiler.Cheesery in project drools by kiegroup.
the class ShadowProxyTest method testShadowProxyOnCollections.
@Test
public void testShadowProxyOnCollections() throws Exception {
final KieBase kbase = SerializationHelper.serializeObject(loadKnowledgeBase("test_ShadowProxyOnCollections.drl"));
final KieSession ksession = createKnowledgeSession(kbase);
final List results = new ArrayList();
ksession.setGlobal("results", results);
final Cheesery cheesery = new Cheesery();
ksession.insert(cheesery);
ksession.fireAllRules();
assertEquals(1, results.size());
assertEquals(1, cheesery.getCheeses().size());
assertEquals(results.get(0), cheesery.getCheeses().get(0));
}
use of org.drools.compiler.Cheesery 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;
}
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("org/drools/compiler/integrationtests/test_SubNetworks.drl"), ResourceType.DRL);
kbuilder.add(ResourceFactory.newClassPathResource("org/drools/compiler/integrationtests/test_AccumulateWithFromChaining.drl"), ResourceType.DRL);
kbuilder.add(ResourceFactory.newClassPathResource("org/drools/compiler/integrationtests/test_CollectResultsBetaConstraint.drl"), ResourceType.DRL);
kbuilder.add(ResourceFactory.newClassPathResource("org/drools/compiler/integrationtests/test_QueryMemoryLeak.drl"), ResourceType.DRL);
assertFalse(kbuilder.getErrors().toString(), kbuilder.hasErrors());
InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addPackages(kbuilder.getKnowledgePackages());
KieSession ksession = createKnowledgeSession(kbase);
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);
}
use of org.drools.compiler.Cheesery in project drools by kiegroup.
the class SessionInspectorTest method testGetSessionInfo.
@Test
public void testGetSessionInfo() {
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("org/drools/compiler/integrationtests/test_SubNetworks.drl"), ResourceType.DRL);
kbuilder.add(ResourceFactory.newClassPathResource("org/drools/compiler/integrationtests/test_AccumulateWithFromChaining.drl"), ResourceType.DRL);
kbuilder.add(ResourceFactory.newClassPathResource("org/drools/compiler/integrationtests/test_CollectResultsBetaConstraint.drl"), ResourceType.DRL);
kbuilder.add(ResourceFactory.newClassPathResource("org/drools/compiler/integrationtests/test_QueryMemoryLeak.drl"), ResourceType.DRL);
assertFalse(kbuilder.getErrors().toString(), kbuilder.hasErrors());
InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addPackages(kbuilder.getKnowledgePackages());
KieSession ksession = createKnowledgeSession(kbase);
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.compiler.Cheesery in project drools by kiegroup.
the class FirstOrderLogicTest method testCollectAfterOrCE.
@Test
public void testCollectAfterOrCE() throws Exception {
Collection<KiePackage> pkgs = loadKnowledgePackages("test_OrCEFollowedByCollect.drl");
InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addPackages(pkgs);
KieSession session = createKnowledgeSession(kbase);
// Set up facts
final Cheesery bonFromage = new Cheesery();
bonFromage.addCheese(new Cheese("cheddar"));
bonFromage.addCheese(new Cheese("cheddar"));
session.insert(bonFromage);
int rules = session.fireAllRules();
assertEquals(2, rules);
// Serialize and test again
pkgs = SerializationHelper.serializeObject(pkgs);
kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addPackages(pkgs);
session = createKnowledgeSession(kbase);
session.insert(bonFromage);
rules = session.fireAllRules();
assertEquals(2, rules);
}
use of org.drools.compiler.Cheesery in project drools by kiegroup.
the class FirstOrderLogicTest method testCollectWithNestedFromWithParams.
@Test
public void testCollectWithNestedFromWithParams() throws Exception {
KieBase kbase = loadKnowledgeBase("test_CollectWithNestedFrom.drl");
KieSession workingMemory = createKnowledgeSession(kbase);
final List results = new ArrayList();
workingMemory.setGlobal("results", results);
final Person bob = new Person("bob", "stilton");
Cheesery cheesery = new Cheesery();
cheesery.addCheese(new Cheese("stilton", 10));
cheesery.addCheese(new Cheese("brie", 20));
cheesery.addCheese(new Cheese("muzzarela", 8));
cheesery.addCheese(new Cheese("stilton", 5));
cheesery.addCheese(new Cheese("provolone", 1));
workingMemory.insert(bob);
workingMemory.insert(cheesery);
workingMemory.fireAllRules();
assertEquals(1, results.size());
List cheeses = (List) results.get(0);
assertEquals(2, cheeses.size());
assertEquals(bob.getLikes(), ((Cheese) cheeses.get(0)).getType());
assertEquals(bob.getLikes(), ((Cheese) cheeses.get(1)).getType());
}
Aggregations