@Test public void testRuleFlowConstraintDialects() throws Exception { builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "test_ConstraintDialects.rfm" ) ) ); assertEquals( 0, builder.getErrors().getErrors().length ); inList.add( 25 ); session.update( handle, inList ); outList.size() ); session.update( handle, inList ); outList.size() ); session.update( handle, inList ); session.startProcess( "ConstraintDialects" ); session.update( handle, inList ); try {
@Test public void testIntermediateCatchEventConditionFilterByProcessInstance() throws Exception { long pi1id = pi1.getId(); ksession.insert(pi1); FactHandle personHandle1 = ksession.insert(person1); long pi2id = pi2.getId(); ksession.insert(pi2); FactHandle personHandle2 = ksession.insert(person2); ksession.update(personHandle1, person1);
@Override public Void call() { KieSession ksession = kBase.newKieSession(); assertThat(((InternalWorkingMemory) ksession).getAgenda().isParallelAgenda()).as("Parallel agenda has to be enabled").isTrue(); List<Integer> list = new DebugList<Integer>(); ksession.setGlobal( "list", list ); FactHandle[] fhs = new FactHandle[10]; fhs = insertFacts(ksession, 10); ksession.fireAllRules(); assertThat(list.size()).isEqualTo(10); list.clear(); for (int i = 0; i < 10; i++) { ksession.update( fhs[i], i ); } ksession.fireAllRules(); assertThat(list.size()).isEqualTo(10); return null; } };
private void doIt(Object o1, Object o2, String query, int expected, boolean doUpdate, boolean doRetract) { KieSession knowledgeSession = knowledgeBase.newKieSession(); try { knowledgeSession.insert( o1 ); FactHandle handle2 = knowledgeSession.insert( o2 ); if ( doUpdate ) { knowledgeSession.update( handle2, o2 ); } else if ( doRetract ) { knowledgeSession.retract( handle2 ); handle2 = knowledgeSession.insert( o2 ); } QueryResults queryResults = knowledgeSession.getQueryResults( query ); assertEquals( expected, queryResults.size() ); } finally { knowledgeSession.dispose(); } }
final FactHandle[] stringFacts = new FactHandle[objectCount]; for (int i = 0; i < objectCount; i++) { facts[i] = ksession.insert(new AtomicInteger(i)); stringFacts[i] = ksession.insert("test_" + i); ksession.update(facts[i], new AtomicInteger(-i)); ksession.update(stringFacts[i], "updated_test_" + i); ksession.delete(stringFacts[i]); ksession.fireAllRules();
@Test public void testJBRules2369() { final KieBase kbase = loadKnowledgeBase("test_JBRules2369.drl"); final KieSession ksession = createKnowledgeSession(kbase); final List<String> results = new ArrayList<String>(); ksession.setGlobal("results", results); final FactA a = new FactA(); final FactB b = new FactB(Integer.valueOf(0)); final FactHandle aHandle = ksession.insert(a); final FactHandle bHandle = ksession.insert(b); ksession.fireAllRules(); assertEquals(1, results.size()); ksession.update(aHandle, a); ksession.fireAllRules(); assertEquals(2, results.size()); }
public static long[] testFrom(KieBase kbase, int n) { final long[] result = new long[2]; final KieSession ksession = kbase.newKieSession(); final List<String> list = new ArrayList<String>(); ksession.setGlobal("list", list); final List<Man> model = generateModel(n); final List<Child> toBeModified = getChildToBeModified(model); long start = System.nanoTime(); final List<InternalFactHandle> fhs = insertModel(ksession, model); ksession.fireAllRules(); result[0] = System.nanoTime() - start; list.clear(); start = System.nanoTime(); for (Child child : toBeModified) { child.setAge(11); } for (InternalFactHandle fh : fhs) { ksession.update(fh, fh.getObject()); } ksession.fireAllRules(); result[1] = System.nanoTime() - start; Assertions.assertThat(n * 3).isEqualTo(list.size()); ksession.dispose(); return result; }
FactHandle[] facts = new FactHandle[objectCount]; for (int i = 0; i < objectCount; i++) { facts[i] = ksession.insert(new Bean(i)); ksession.update(facts[i], new Bean(-i)); ksession.delete(fact); ksession.fireAllRules();
private void handleAlarmAcknowledgements(OnmsAlarm alarm, OnmsAcknowledgment ack) { final AlarmAcknowledgementAndFact acknowledgmentFact = acknowledgementsByAlarmId.get(alarm.getId()); if (acknowledgmentFact == null) { LOG.debug("Inserting first alarm acknowledgement into session: {}", ack); final FactHandle fact = getKieSession().insert(ack); acknowledgementsByAlarmId.put(alarm.getId(), new AlarmAcknowledgementAndFact(ack, fact)); } else { FactHandle fact = acknowledgmentFact.getFact(); LOG.trace("Updating acknowledgment in session: {}", ack); getKieSession().update(fact, ack); acknowledgementsByAlarmId.put(alarm.getId(), new AlarmAcknowledgementAndFact(ack, fact)); } }
@Test public void testRuntimeTypeCoercion() throws Exception { final KieBase kbase = SerializationHelper.serializeObject(loadKnowledgeBase("test_RuntimeTypeCoercion.drl")); final KieSession ksession = createKnowledgeSession(kbase); final List list = new ArrayList(); ksession.setGlobal("results", list); final PolymorphicFact fact = new PolymorphicFact(10); final FactHandle handle = ksession.insert(fact); ksession.fireAllRules(); assertEquals(1, list.size()); assertEquals(fact.getData(), list.get(0)); fact.setData("10"); ksession.update(handle, fact); ksession.fireAllRules(); assertEquals(2, list.size()); assertEquals(fact.getData(), list.get(1)); fact.setData(Boolean.TRUE); ksession.update(handle, fact); assertEquals(2, list.size()); }
public static long[] testRelational(KieBase kbase, int n) { final long[] result = new long[2]; final KieSession ksession = kbase.newKieSession(); final List<String> list = new ArrayList<String>(); ksession.setGlobal("list", list); final List<Man> model = generateModel(n); final List<Child> toBeModified = getChildToBeModified(model); long start = System.nanoTime(); final List<InternalFactHandle> fhs = insertFullModel(ksession, model); ksession.fireAllRules(); result[0] = System.nanoTime() - start; list.clear(); start = System.nanoTime(); for (Child child : toBeModified) { child.setAge(11); } for (InternalFactHandle fh : fhs) { ksession.update(fh, fh.getObject()); } ksession.fireAllRules(); result[1] = System.nanoTime() - start; Assertions.assertThat(n).isEqualTo(list.size()); ksession.dispose(); return result; }
@Test public void updateWithDifferentClassGetObjectsTest() { final Person person = new Person("George", 18); final FactHandle factPerson = ksession.insert(person); final Person personToBeVerified = verifyFactsPresentInSession(1, Person.class).get(0); assertThat(personToBeVerified).isEqualTo(person); final Cheese cheese = new Cheese("Camembert", 50); ksession.update(factPerson, cheese); verifyFactsPresentInSession(1, Cheese.class); final Cheese cheeseToBeVerified = (Cheese) ksession.getObjects().iterator().next(); verifyCheese(cheeseToBeVerified, 50, "Camembert"); }
request.setPersonId("john"); request.setAmount(1000L); ksession.insert(person); ksession.insert(request); Map<String, Object> params = new HashMap<String, Object>(); params.put("request", request); WorkflowProcessInstance processInstance = (WorkflowProcessInstance) ksession.startProcess("com.sample.requestHandling", params); ksession.insert(processInstance); ksession.fireAllRules(); params.put("request", request2); ksession.startProcess("com.sample.requestHandling", params); ksession.fireAllRules(); Request request3 = new Request("12347"); request3.setPersonId("john"); params.put("request", request); ksession.startProcess("com.sample.requestHandling", params); ksession.fireAllRules(); Request request4 = new Request("12348"); request4.setPersonId("john"); ksession.update(handle, request6); ksession.fireAllRules(); logger.close();
if (assocationFact == null) { LOG.debug("Inserting alarm association into session: {}", association); final FactHandle fact = getKieSession().insert(association); associationFacts.put(alarmId, new AlarmAssociationAndFact(association, fact)); } else { FactHandle fact = assocationFact.getFact(); LOG.trace("Updating alarm assocation in session: {}", assocationFact); getKieSession().update(fact, association); associationFacts.put(alarmId, new AlarmAssociationAndFact(association, fact));
@Test(timeout=10000) public void testApplyBlockerSecondWithUpdate() { KieSession ksession = getStatefulKnowledgeSession(); List list = new ArrayList(); ksession.setGlobal( "list", list ); FactHandle go1 = ksession.insert( "go1" ); FactHandle go2 = ksession.insert( "go2" ); ksession.fireAllRules(); assertEquals( 1, list.size() ); assertTrue( list.contains( "rule1:go2" ) ); list.clear(); ksession.update( go2, "go2" ); ksession.fireAllRules(); assertEquals( 1, list.size() ); assertTrue( list.contains( "rule1:go2" ) ); list.clear(); ksession.retract( go2 ); ksession.fireAllRules(); assertEquals( 1, list.size() ); assertTrue( list.contains( "rule1:go1" ) ); }
@Test public void deleteUpdatedFactTest() { FactHandle person = ksession.insert(new Person("George", 18)); ksession.update(person, new Person("John", 21)); QueryResults results = ksession.getQueryResults("countPerson"); Assertions.assertThat(results).isNotEmpty(); Assertions.assertThat(results.iterator().next().get("$personCount")).isEqualTo(1L); ksession.delete(person); results = ksession.getQueryResults("countPerson"); Assertions.assertThat(results).isNotEmpty(); Assertions.assertThat(results.iterator().next().get("$personCount")).isEqualTo(0L); }
@Test public void testLatinLocale() throws Exception { final Locale defaultLoc = Locale.getDefault(); try { // setting a locale that uses COMMA as decimal separator Locale.setDefault(new Locale("pt", "BR")); final KieBase kbase = loadKnowledgeBase("test_LatinLocale.drl"); final KieSession ksession = createKnowledgeSession(kbase); final List<String> results = new ArrayList<String>(); ksession.setGlobal("results", results); final Cheese mycheese = new Cheese("cheddar", 4); final FactHandle handle = ksession.insert(mycheese); ksession.fireAllRules(); assertEquals(1, results.size()); assertEquals("1", results.get(0)); mycheese.setPrice(8); mycheese.setDoublePrice(8.50); ksession.update(handle, mycheese); ksession.fireAllRules(); assertEquals(2, results.size()); assertEquals("3", results.get(1)); } finally { Locale.setDefault(defaultLoc); } }
@Test public void updateTheOnlyFactTest() { final Person person = new Person("George", 18); final FactHandle factPerson = ksession.insert(person); assertThat(ksession.getObjects()).hasSize(1); assertThat(ksession.getObjects().iterator().next()).isInstanceOf(Person.class); Person personToBeVerified = (Person) ksession.getObjects().iterator().next(); verifyPerson(person, personToBeVerified, 18, "George", true); ksession.update(factPerson, new Person("Henry", 21)); verifyFactsPresentInSession(1, Person.class); personToBeVerified = (Person) ksession.getObjects().iterator().next(); verifyPerson(person, personToBeVerified, 21, "Henry", false); }