use of org.kie.api.runtime.ExecutionResults in project drools by kiegroup.
the class StatelessSessionTest method testSetGlobal.
@Test
public void testSetGlobal() throws Exception {
String str = "";
str += "package org.kie \n";
str += "import org.drools.compiler.Cheese \n";
str += "global java.util.List list1 \n";
str += "global java.util.List list2 \n";
str += "global java.util.List list3 \n";
str += "rule rule1 \n";
str += " when \n";
str += " $c : Cheese() \n";
str += " \n";
str += " then \n";
str += " $c.setPrice( 30 ); \n";
str += " list1.add( $c ); \n";
str += " list2.add( $c ); \n";
str += " list3.add( $c ); \n";
str += "end\n";
final Cheese stilton = new Cheese("stilton", 5);
final List list1 = new ArrayList();
List list2 = new ArrayList();
List list3 = new ArrayList();
final StatelessKieSession ksession = getSession2(ResourceFactory.newByteArrayResource(str.getBytes()));
final Command setGlobal1 = CommandFactory.newSetGlobal("list1", list1);
final Command setGlobal2 = CommandFactory.newSetGlobal("list2", list2, true);
final Command setGlobal3 = CommandFactory.newSetGlobal("list3", list3, "outList3");
final Command insert = CommandFactory.newInsert(stilton);
final List cmds = new ArrayList();
cmds.add(setGlobal1);
cmds.add(setGlobal2);
cmds.add(setGlobal3);
cmds.add(insert);
final ExecutionResults result = (ExecutionResults) ksession.execute(CommandFactory.newBatchExecution(cmds));
assertEquals(30, stilton.getPrice());
assertNull(result.getValue("list1"));
list2 = (List) result.getValue("list2");
assertEquals(1, list2.size());
assertSame(stilton, list2.get(0));
list3 = (List) result.getValue("outList3");
assertEquals(1, list3.size());
assertSame(stilton, list3.get(0));
}
use of org.kie.api.runtime.ExecutionResults in project drools by kiegroup.
the class StatelessSessionTest method testInsertObject.
@Test
public void testInsertObject() throws Exception {
String str = "";
str += "package org.kie \n";
str += "import org.drools.compiler.Cheese \n";
str += "rule rule1 \n";
str += " when \n";
str += " $c : Cheese() \n";
str += " \n";
str += " then \n";
str += " $c.setPrice( 30 ); \n";
str += "end\n";
Cheese stilton = new Cheese("stilton", 5);
final StatelessKieSession ksession = getSession2(ResourceFactory.newByteArrayResource(str.getBytes()));
final ExecutableCommand cmd = (ExecutableCommand) CommandFactory.newInsert(stilton, "outStilton");
final BatchExecutionCommandImpl batch = new BatchExecutionCommandImpl(Arrays.asList(new ExecutableCommand<?>[] { cmd }));
final ExecutionResults result = (ExecutionResults) ksession.execute(batch);
stilton = (Cheese) result.getValue("outStilton");
assertEquals(30, stilton.getPrice());
}
use of org.kie.api.runtime.ExecutionResults in project drools by kiegroup.
the class FireAllRulesCommandTest method zeroRulesFiredTest.
@Test
public void zeroRulesFiredTest() {
String str = "";
str += "package org.drools.compiler.integrationtests \n";
str += "import " + Cheese.class.getCanonicalName() + " \n";
str += "rule StringRule \n";
str += " when \n";
str += " $c : Cheese() \n";
str += " then \n";
str += " System.out.println($c); \n";
str += "end \n";
StatelessKieSession ksession = getSession(str);
List<Command<?>> commands = new ArrayList<Command<?>>();
commands.add(CommandFactory.newInsert("not cheese"));
commands.add(CommandFactory.newFireAllRules("num-rules-fired"));
ExecutionResults results = ksession.execute(CommandFactory.newBatchExecution(commands));
int fired = Integer.parseInt(results.getValue("num-rules-fired").toString());
assertEquals(0, fired);
}
use of org.kie.api.runtime.ExecutionResults in project drools by kiegroup.
the class FireAllRulesCommandTest method fiveRulesFiredTest.
@Test
public void fiveRulesFiredTest() {
String str = "";
str += "package org.drools.compiler.integrationtests \n";
str += "import " + Cheese.class.getCanonicalName() + " \n";
str += "rule StringRule \n";
str += " when \n";
str += " $c : Cheese() \n";
str += " then \n";
str += " System.out.println($c); \n";
str += "end \n";
StatelessKieSession ksession = getSession(str);
List<Command<?>> commands = new ArrayList<Command<?>>();
commands.add(CommandFactory.newInsert(new Cheese("stilton")));
commands.add(CommandFactory.newInsert(new Cheese("gruyere")));
commands.add(CommandFactory.newInsert(new Cheese("cheddar")));
commands.add(CommandFactory.newInsert(new Cheese("stinky")));
commands.add(CommandFactory.newInsert(new Cheese("limburger")));
commands.add(CommandFactory.newFireAllRules("num-rules-fired"));
ExecutionResults results = ksession.execute(CommandFactory.newBatchExecution(commands));
int fired = Integer.parseInt(results.getValue("num-rules-fired").toString());
assertEquals(5, fired);
}
use of org.kie.api.runtime.ExecutionResults in project drools by kiegroup.
the class FireAllRulesCommandTest method oneRuleFiredTest.
@Test
public void oneRuleFiredTest() {
String str = "";
str += "package org.drools.compiler.integrationtests \n";
str += "import " + Cheese.class.getCanonicalName() + " \n";
str += "rule StringRule \n";
str += " when \n";
str += " $c : Cheese() \n";
str += " then \n";
str += " System.out.println($c); \n";
str += "end \n";
StatelessKieSession ksession = getSession(str);
List<Command<?>> commands = new ArrayList<Command<?>>();
commands.add(CommandFactory.newInsert(new Cheese("stilton")));
commands.add(CommandFactory.newFireAllRules("num-rules-fired"));
ExecutionResults results = ksession.execute(CommandFactory.newBatchExecution(commands));
int fired = Integer.parseInt(results.getValue("num-rules-fired").toString());
assertEquals(1, fired);
}
Aggregations