Search in sources :

Example 41 with FactHandle

use of org.kie.api.runtime.rule.FactHandle 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 42 with FactHandle

use of org.kie.api.runtime.rule.FactHandle in project drools by kiegroup.

the class DeleteTest method testModifyRetractWithFunction.

@Test
public void testModifyRetractWithFunction() throws Exception {
    final KieBase kbase = SerializationHelper.serializeObject(loadKnowledgeBase("test_RetractModifyWithFunction.drl"));
    final KieSession ksession = createKnowledgeSession(kbase);
    final org.drools.compiler.Cheese stilton = new org.drools.compiler.Cheese("stilton", 7);
    final org.drools.compiler.Cheese muzzarella = new org.drools.compiler.Cheese("muzzarella", 9);
    final int sum = stilton.getPrice() + muzzarella.getPrice();
    final FactHandle stiltonHandle = ksession.insert(stilton);
    final FactHandle muzzarellaHandle = ksession.insert(muzzarella);
    ksession.fireAllRules();
    assertEquals(sum, stilton.getPrice());
    assertEquals(1, ksession.getFactCount());
    assertNotNull(ksession.getObject(stiltonHandle));
    assertNotNull(ksession.getFactHandle(stilton));
    assertNull(ksession.getObject(muzzarellaHandle));
    assertNull(ksession.getFactHandle(muzzarella));
}
Also used : FactHandle(org.kie.api.runtime.rule.FactHandle) KieBase(org.kie.api.KieBase) KieSession(org.kie.api.runtime.KieSession) Cheese(org.drools.core.test.model.Cheese) Test(org.junit.Test)

Example 43 with FactHandle

use of org.kie.api.runtime.rule.FactHandle 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 44 with FactHandle

use of org.kie.api.runtime.rule.FactHandle 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 45 with FactHandle

use of org.kie.api.runtime.rule.FactHandle in project drools by kiegroup.

the class LocaleTest method testLatinLocale.

@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);
    }
}
Also used : Locale(java.util.Locale) FactHandle(org.kie.api.runtime.rule.FactHandle) KieBase(org.kie.api.KieBase) ArrayList(java.util.ArrayList) KieSession(org.kie.api.runtime.KieSession) Cheese(org.drools.compiler.Cheese) Test(org.junit.Test)

Aggregations

FactHandle (org.kie.api.runtime.rule.FactHandle)650 Test (org.junit.Test)547 KieSession (org.kie.api.runtime.KieSession)506 KieBase (org.kie.api.KieBase)304 ArrayList (java.util.ArrayList)298 InternalFactHandle (org.drools.core.common.InternalFactHandle)192 List (java.util.List)165 DefaultFactHandle (org.drools.core.common.DefaultFactHandle)119 StatelessKieSession (org.kie.api.runtime.StatelessKieSession)66 KieHelper (org.kie.internal.utils.KieHelper)50 Person (org.drools.modelcompiler.domain.Person)46 KnowledgeBuilder (org.kie.internal.builder.KnowledgeBuilder)43 HashMap (java.util.HashMap)41 Person (org.drools.compiler.Person)41 InternalWorkingMemory (org.drools.core.common.InternalWorkingMemory)39 InternalKnowledgeBase (org.drools.core.impl.InternalKnowledgeBase)39 Person (org.drools.mvel.compiler.Person)38 Ignore (org.junit.Ignore)36 Match (org.kie.api.runtime.rule.Match)36 Collection (java.util.Collection)34