Search in sources :

Example 1 with Cheese

use of org.drools.core.test.model.Cheese in project drools by kiegroup.

the class BasicUpdateTest method updateFactOnRuleFireTest.

@Test
public void updateFactOnRuleFireTest() {
    final Cheese camembert = new Cheese("Camembert", 19);
    final Cheese cheddar = new Cheese("Cheddar", 45);
    ksession.insert(camembert);
    ksession.insert(cheddar);
    verifyFactsWithQuery(Cheese.class, "cheeseTypes", camembert, cheddar);
    final List<Cheese> expensiveCheese = new ArrayList<>();
    ksession.setGlobal("expensiveCheese", expensiveCheese);
    final int firedRules = ksession.fireAllRules();
    assertThat(firedRules).isEqualTo(2);
    verifyList(expensiveCheese, camembert, cheddar);
    verifyFactsWithQuery(Cheese.class, "cheeseTypes", camembert, cheddar);
    assertThat(camembert.getPrice()).isEqualTo(21);
    assertThat(cheddar.getPrice()).isEqualTo(45);
}
Also used : ArrayList(java.util.ArrayList) Cheese(org.drools.core.test.model.Cheese) Test(org.junit.Test)

Example 2 with Cheese

use of org.drools.core.test.model.Cheese in project drools by kiegroup.

the class BasicUpdateTest method updateWithDifferentClassGetQueryResultsTest.

@Test
public void updateWithDifferentClassGetQueryResultsTest() {
    final Person person = new Person("George", 18);
    final FactHandle fact = ksession.insert(person);
    verifyFactsWithQuery(Person.class, "persons", person);
    final Cheese cheese = new Cheese("Camembert", 2);
    ksession.update(fact, cheese);
    verifyWithQueryNoPersonsPresentInFacts();
    verifyFactsPresentInSession(1, Cheese.class);
    Cheese cheeseToBeVerified = (Cheese) ksession.getObjects().iterator().next();
    verifyCheese(cheeseToBeVerified, 2, "Camembert");
    cheeseToBeVerified = verifyFactPresentInSession(fact, Cheese.class);
    verifyCheese(cheeseToBeVerified, 2, "Camembert");
}
Also used : FactHandle(org.kie.api.runtime.rule.FactHandle) Cheese(org.drools.core.test.model.Cheese) Person(org.drools.core.test.model.Person) Test(org.junit.Test)

Example 3 with Cheese

use of org.drools.core.test.model.Cheese in project drools by kiegroup.

the class BasicUpdateTest method updateWithDifferentClassGetObjectsTest.

@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");
}
Also used : FactHandle(org.kie.api.runtime.rule.FactHandle) Cheese(org.drools.core.test.model.Cheese) Person(org.drools.core.test.model.Person) Test(org.junit.Test)

Example 4 with Cheese

use of org.drools.core.test.model.Cheese in project drools by kiegroup.

the class EqualityKeyTest method test1.

@Test
public void test1() {
    ReteooFactHandleFactory factory = new ReteooFactHandleFactory();
    InternalFactHandle ch1 = factory.newFactHandle(new Cheese("c", 10), null, null, null);
    EqualityKey key = new EqualityKey(ch1);
    assertSame(ch1, key.getFactHandle());
    assertEquals(1, key.size());
    InternalFactHandle ch2 = factory.newFactHandle(new Cheese("c", 10), null, null, null);
    key.addFactHandle(ch2);
    assertEquals(2, key.size());
    assertEquals(ch2, key.get(1));
    key.removeFactHandle(ch1);
    assertSame(ch2, key.getFactHandle());
    assertEquals(1, key.size());
    key.removeFactHandle(ch2);
    assertNull(key.getFactHandle());
    assertEquals(0, key.size());
    key = new EqualityKey(ch2);
    key.addFactHandle(ch1);
    assertSame(ch2, key.getFactHandle());
    assertEquals(2, key.size());
    assertEquals(ch1, key.get(1));
    key.removeFactHandle(ch1);
    assertSame(ch2, key.getFactHandle());
    assertEquals(1, key.size());
    key.removeFactHandle(ch2);
    assertNull(key.getFactHandle());
    assertEquals(0, key.size());
}
Also used : ReteooFactHandleFactory(org.drools.core.reteoo.ReteooFactHandleFactory) Cheese(org.drools.core.test.model.Cheese) Test(org.junit.Test)

Example 5 with Cheese

use of org.drools.core.test.model.Cheese in project drools by kiegroup.

the class RuleRuntimeEventSupportTest method testRuleRuntimeEventListener.

@Test
public void testRuleRuntimeEventListener() {
    final KieBase rb = KnowledgeBaseFactory.newKnowledgeBase();
    final KieSession wm = rb.newKieSession();
    final List wmList = new ArrayList();
    final RuleRuntimeEventListener workingMemoryListener = new RuleRuntimeEventListener() {

        public void objectInserted(ObjectInsertedEvent event) {
            wmList.add(event);
        }

        public void objectUpdated(ObjectUpdatedEvent event) {
            wmList.add(event);
        }

        public void objectDeleted(ObjectDeletedEvent event) {
            wmList.add(event);
        }
    };
    wm.addEventListener(workingMemoryListener);
    assertEquals(1, wm.getRuleRuntimeEventListeners().size());
    final Cheese stilton = new Cheese("stilton", 15);
    final Cheese cheddar = new Cheese("cheddar", 17);
    final FactHandle stiltonHandle = wm.insert(stilton);
    ObjectInsertedEvent oae = (ObjectInsertedEvent) wmList.get(0);
    assertSame(stiltonHandle, oae.getFactHandle());
    wm.update(stiltonHandle, cheddar);
    final ObjectUpdatedEvent ome = (ObjectUpdatedEvent) wmList.get(1);
    assertSame(stiltonHandle, ome.getFactHandle());
    assertEquals(cheddar, ome.getObject());
    assertEquals(stilton, ome.getOldObject());
    wm.retract(stiltonHandle);
    final ObjectDeletedEvent ore = (ObjectDeletedEvent) wmList.get(2);
    assertSame(stiltonHandle, ore.getFactHandle());
    final FactHandle cheddarHandle = wm.insert(cheddar);
    oae = (ObjectInsertedEvent) wmList.get(3);
    assertSame(cheddarHandle, oae.getFactHandle());
}
Also used : ObjectDeletedEvent(org.kie.api.event.rule.ObjectDeletedEvent) RuleRuntimeEventListener(org.kie.api.event.rule.RuleRuntimeEventListener) FactHandle(org.kie.api.runtime.rule.FactHandle) KieBase(org.kie.api.KieBase) ArrayList(java.util.ArrayList) KieSession(org.kie.api.runtime.KieSession) ArrayList(java.util.ArrayList) List(java.util.List) ObjectUpdatedEvent(org.kie.api.event.rule.ObjectUpdatedEvent) Cheese(org.drools.core.test.model.Cheese) ObjectInsertedEvent(org.kie.api.event.rule.ObjectInsertedEvent) Test(org.junit.Test)

Aggregations

Cheese (org.drools.core.test.model.Cheese)35 Test (org.junit.Test)35 DefaultFactHandle (org.drools.core.common.DefaultFactHandle)14 InternalFactHandle (org.drools.core.common.InternalFactHandle)14 InternalReadAccessor (org.drools.core.spi.InternalReadAccessor)14 ClassObjectType (org.drools.core.base.ClassObjectType)12 MvelConstraint (org.drools.core.rule.constraint.MvelConstraint)10 InternalKnowledgeBase (org.drools.core.impl.InternalKnowledgeBase)9 FieldIndex (org.drools.core.util.AbstractHashTable.FieldIndex)9 StatefulKnowledgeSessionImpl (org.drools.core.impl.StatefulKnowledgeSessionImpl)8 RightTupleImpl (org.drools.core.reteoo.RightTupleImpl)8 FactHandle (org.kie.api.runtime.rule.FactHandle)8 ClassFieldReader (org.drools.core.base.ClassFieldReader)7 RightTuple (org.drools.core.reteoo.RightTuple)7 MvelConstraintTestUtil (org.drools.core.rule.MvelConstraintTestUtil)7 Pattern (org.drools.core.rule.Pattern)7 Tuple (org.drools.core.spi.Tuple)7 LeftTupleImpl (org.drools.core.reteoo.LeftTupleImpl)6 Declaration (org.drools.core.rule.Declaration)6 TupleIndexHashTable (org.drools.core.util.index.TupleIndexHashTable)6