use of org.drools.traits.core.factmodel.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(createStandaloneTraitFactory()).call();
assertEquals("hello", klass.getProp());
}
use of org.drools.traits.core.factmodel.Entity in project drools by kiegroup.
the class StandaloneTest method testThing.
@Test
public void testThing() throws LogicalTypeInconsistencyException {
// Entity is @Traitable and implements TraitableBean natively
// Thing is a Trait
// --> just call getProxy
Entity core = new Entity("x");
Thing thing = factory.don(core, Thing.class);
assertNotNull(thing);
}
use of org.drools.traits.core.factmodel.Entity in project drools by kiegroup.
the class TraitTest method testTraitdeleteOrder.
@Test
public void testTraitdeleteOrder() {
String drl = "" + "package org.drools.core.factmodel.traits.test;\n" + "\n" + "import org.drools.core.factmodel.traits.*;\n" + "import org.drools.traits.core.factmodel.*;\n" + "import java.util.*;\n" + "\n" + "declare trait A end \n" + "declare trait B extends A end \n" + "declare trait C end \n" + "\n" + "rule \"don\"\n" + "when \n" + " $e : Entity() \n" + "then\n" + " don( $e, A.class ); \n" + " don( $e, C.class ); \n" + " don( $e, B.class ); \n" + "end\n" + "";
KieSession ksession = loadKnowledgeBaseFromString(drl).newKieSession();
TraitFactoryImpl.setMode(mode, ksession.getKieBase());
FactHandle handle = ksession.insert(new Entity());
ksession.fireAllRules();
final ArrayList list = new ArrayList();
ksession.addEventListener(new RuleRuntimeEventListener() {
public void objectInserted(org.kie.api.event.rule.ObjectInsertedEvent objectInsertedEvent) {
}
public void objectUpdated(org.kie.api.event.rule.ObjectUpdatedEvent objectUpdatedEvent) {
}
public void objectDeleted(org.kie.api.event.rule.ObjectDeletedEvent objectRetractedEvent) {
Object o = objectRetractedEvent.getOldObject();
if (o instanceof TraitProxyImpl) {
String traitName = ((TraitProxyImpl) o)._getTraitName();
list.add(traitName.substring(traitName.lastIndexOf(".") + 1));
}
}
});
ksession.delete(handle);
ksession.fireAllRules();
System.out.println(list);
assertEquals(Arrays.asList("B", "C", "A"), list);
}
Aggregations