Search in sources :

Example 6 with Person

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

the class DeleteTest method testEmptyAfterRetractInIndexedMemory.

@Test
public void testEmptyAfterRetractInIndexedMemory() {
    String str = "";
    str += "package org.simple \n";
    str += "import org.drools.compiler.Person\n";
    str += "global java.util.List list \n";
    str += "rule xxx dialect 'mvel' \n";
    str += "when \n";
    str += "  Person( $name : name ) \n";
    str += "  $s : String( this == $name) \n";
    str += "then \n";
    str += "  list.add($s); \n";
    str += "end  \n";
    final KieBase kbase = loadKnowledgeBaseFromString(str);
    final KieSession ksession = createKnowledgeSession(kbase);
    final List list = new ArrayList();
    ksession.setGlobal("list", list);
    final org.drools.compiler.Person p = new org.drools.compiler.Person("ackbar");
    ksession.insert(p);
    ksession.insert("ackbar");
    ksession.fireAllRules();
    ksession.dispose();
    assertEquals(1, list.size());
    assertEquals("ackbar", list.get(0));
}
Also used : KieBase(org.kie.api.KieBase) ArrayList(java.util.ArrayList) KieSession(org.kie.api.runtime.KieSession) ArrayList(java.util.ArrayList) List(java.util.List) Person(org.drools.core.test.model.Person) Test(org.junit.Test)

Example 7 with Person

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

the class DeleteTest method deleteFactTest.

@Test
public void deleteFactTest() {
    ksession.insert(new Person("Petr", 25));
    FactHandle george = ksession.insert(new Person("George", 19));
    QueryResults results = ksession.getQueryResults("informationAboutPersons");
    Assertions.assertThat(results).isNotEmpty();
    Assertions.assertThat(results.iterator().next().get("$countOfPerson")).isEqualTo(2L);
    ksession.delete(george);
    results = ksession.getQueryResults("informationAboutPersons");
    Assertions.assertThat(results).isNotEmpty();
    Assertions.assertThat(results.iterator().next().get("$countOfPerson")).isEqualTo(1L);
}
Also used : FactHandle(org.kie.api.runtime.rule.FactHandle) Person(org.drools.core.test.model.Person) QueryResults(org.kie.api.runtime.rule.QueryResults) Test(org.junit.Test)

Example 8 with Person

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

the class DeleteTest method deleteFactTwiceTest.

@Test
public void deleteFactTwiceTest() {
    FactHandle george = ksession.insert(new Person("George", 19));
    QueryResults results = ksession.getQueryResults("countPerson");
    Assertions.assertThat(results).isNotEmpty();
    Assertions.assertThat(results.iterator().next().get("$personCount")).isEqualTo(1L);
    ksession.delete(george);
    results = ksession.getQueryResults("countPerson");
    Assertions.assertThat(results).isNotEmpty();
    Assertions.assertThat(results.iterator().next().get("$personCount")).isEqualTo(0L);
    ksession.delete(george);
    Assertions.assertThat(results).isNotEmpty();
    Assertions.assertThat(results.iterator().next().get("$personCount")).isEqualTo(0L);
}
Also used : FactHandle(org.kie.api.runtime.rule.FactHandle) Person(org.drools.core.test.model.Person) QueryResults(org.kie.api.runtime.rule.QueryResults) Test(org.junit.Test)

Example 9 with Person

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

the class MVELClassFieldExtractorTest method setUp.

@Before
public void setUp() throws Exception {
    store.setClassFieldAccessorCache(new ClassFieldAccessorCache(Thread.currentThread().getContextClassLoader()));
    store.setEagerWire(true);
    extractor = (MVELObjectClassFieldReader) store.getMVELReader(Person.class.getPackage().getName(), Person.class.getName(), "addresses['home'].street", true, String.class);
    MVELDialectRuntimeData data = new MVELDialectRuntimeData();
    data.addImport(Person.class.getSimpleName(), Person.class);
    data.onAdd(null, ProjectClassLoader.createProjectClassLoader());
    extractor.compile(data);
    person[0] = new Person("bob", 30);
    business[0] = new Address("Business Street", "999", null);
    home[0] = new Address("Home Street", "555", "55555555");
    person[0].getAddresses().put("business", business[0]);
    person[0].getAddresses().put("home", home[0]);
    person[1] = new Person("mark", 35);
    business[1] = new Address("Another Business Street", "999", null);
    home[1] = new Address("Another Home Street", "555", "55555555");
    person[1].getAddresses().put("business", business[1]);
    person[1].getAddresses().put("home", home[1]);
}
Also used : ClassFieldAccessorCache(org.drools.core.base.ClassFieldAccessorCache) MVELDialectRuntimeData(org.drools.core.rule.MVELDialectRuntimeData) Address(org.drools.core.test.model.Address) Person(org.drools.core.test.model.Person) Before(org.junit.Before)

Example 10 with Person

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

the class ReteooWorkingMemoryTest method testObjectIterator.

@Test
public void testObjectIterator() {
    InternalKnowledgeBase kBase = (InternalKnowledgeBase) KnowledgeBaseFactory.newKnowledgeBase();
    KieSession ksession = kBase.newKieSession();
    ksession.insert(new Person("bob", 35));
    ksession.insert(new Cheese("stilton", 35));
    ksession.insert(new Cheese("brie", 35));
    ksession.insert(new Person("steve", 55));
    ksession.insert(new Person("tom", 100));
    int i = 0;
    for (FactHandle fh : ksession.getFactHandles()) {
        if (i++ > 5) {
            fail("should not iterate for than 3 times");
        }
    }
    i = 0;
    for (FactHandle fh : ksession.getFactHandles()) {
        if (i++ > 5) {
            fail("should not iterate for than 3 times");
        }
    }
}
Also used : FactHandle(org.kie.api.runtime.rule.FactHandle) KieSession(org.kie.api.runtime.KieSession) Cheese(org.drools.core.test.model.Cheese) Person(org.drools.core.test.model.Person) InternalKnowledgeBase(org.drools.core.impl.InternalKnowledgeBase) NamedEntryPoint(org.drools.core.common.NamedEntryPoint) EntryPoint(org.kie.api.runtime.rule.EntryPoint) Test(org.junit.Test)

Aggregations

Person (org.drools.core.test.model.Person)14 Test (org.junit.Test)13 FactHandle (org.kie.api.runtime.rule.FactHandle)10 Cheese (org.drools.core.test.model.Cheese)4 ArrayList (java.util.ArrayList)3 KieSession (org.kie.api.runtime.KieSession)3 QueryResults (org.kie.api.runtime.rule.QueryResults)3 List (java.util.List)2 KieBase (org.kie.api.KieBase)2 URI (java.net.URI)1 PersonInterface (org.drools.compiler.PersonInterface)1 ClassFieldAccessorCache (org.drools.core.base.ClassFieldAccessorCache)1 NamedEntryPoint (org.drools.core.common.NamedEntryPoint)1 InternalKnowledgeBase (org.drools.core.impl.InternalKnowledgeBase)1 MVELDialectRuntimeData (org.drools.core.rule.MVELDialectRuntimeData)1 Address (org.drools.core.test.model.Address)1 Before (org.junit.Before)1 EntryPoint (org.kie.api.runtime.rule.EntryPoint)1