Search in sources :

Example 11 with Entity

use of org.drools.core.factmodel.traits.Entity in project drools by kiegroup.

the class TraitTest method testPartitionWithSiblingsOnDelete.

@Test
public void testPartitionWithSiblingsOnDelete() {
    String drl = "import " + Entity.class.getName() + ";" + "global java.util.List list; " + "declare trait A @propertyReactive end " + "declare trait B extends A @propertyReactive end " + "declare trait C extends A @propertyReactive end " + "rule Trait when " + "    $core: Entity( ) " + "then " + "    don( $core, A.class ); " + "    don( $core, B.class ); " + "    don( $core, C.class ); " + "end " + "rule Shed when " + "   $s: String() " + "   $core : Entity() " + "then " + "   shed( $core, C.class ); " + "end " + "rule RA when A() then list.add( 'A' ); end " + "rule RB when B() then list.add( 'B' ); end " + "rule RC when C() then list.add( 'C' ); end " + " ";
    KieBase kbase = new KieHelper().addContent(drl, ResourceType.DRL).build();
    TraitFactory.setMode(mode, kbase);
    KieSession ksession = kbase.newKieSession();
    List list = new ArrayList();
    ksession.setGlobal("list", list);
    Entity e = new Entity();
    ksession.insert(e);
    ksession.fireAllRules();
    assertEquals(Arrays.asList('A', 'B', 'C'), list);
    ksession.insert("go");
    ksession.fireAllRules();
    Set<BitSet> s = checkOTNPartitioning(e, ksession);
    assertEquals(2, s.size());
    assertEquals(Arrays.asList('A', 'B', 'C'), list);
}
Also used : Entity(org.drools.core.factmodel.traits.Entity) KieBase(org.kie.api.KieBase) ArrayList(java.util.ArrayList) BitSet(java.util.BitSet) KieHelper(org.kie.internal.utils.KieHelper) StatelessKieSession(org.kie.api.runtime.StatelessKieSession) KieSession(org.kie.api.runtime.KieSession) List(java.util.List) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 12 with Entity

use of org.drools.core.factmodel.traits.Entity in project drools by kiegroup.

the class MetadataTest method testDon.

@Test
public void testDon() {
    Entity entity = new Entity("123");
    entity._setDynamicProperties(new HashMap());
    entity._getDynamicProperties().put("prop", "hello");
    Klass klass = Klass_.donKlass(entity).setTraitFactory(new StandaloneTraitFactory(ProjectClassLoader.createProjectClassLoader())).call();
    assertEquals("hello", klass.getProp());
}
Also used : Entity(org.drools.core.factmodel.traits.Entity) AnotherKlass(org.drools.core.meta.org.test.AnotherKlass) Klass(org.drools.core.meta.org.test.Klass) SubKlass(org.drools.core.meta.org.test.SubKlass) HashMap(java.util.HashMap) StandaloneTraitFactory(org.drools.core.util.StandaloneTraitFactory) Test(org.junit.Test)

Aggregations

Entity (org.drools.core.factmodel.traits.Entity)12 Test (org.junit.Test)12 KieSession (org.kie.api.runtime.KieSession)6 StatelessKieSession (org.kie.api.runtime.StatelessKieSession)6 HashMap (java.util.HashMap)4 TraitProxy (org.drools.core.factmodel.traits.TraitProxy)4 InternalKnowledgeBase (org.drools.core.impl.InternalKnowledgeBase)4 KnowledgeBaseImpl (org.drools.core.impl.KnowledgeBaseImpl)4 ByteArrayResource (org.drools.core.io.impl.ByteArrayResource)4 KieBase (org.kie.api.KieBase)4 KnowledgeBuilder (org.kie.internal.builder.KnowledgeBuilder)4 ArrayList (java.util.ArrayList)3 LogicalTypeInconsistencyException (org.drools.core.factmodel.traits.LogicalTypeInconsistencyException)3 TraitFactory (org.drools.core.factmodel.traits.TraitFactory)3 TraitableBean (org.drools.core.factmodel.traits.TraitableBean)3 ClassPathResource (org.drools.core.io.impl.ClassPathResource)3 FactType (org.kie.api.definition.type.FactType)3 Resource (org.kie.api.io.Resource)3 List (java.util.List)2 Map (java.util.Map)2