use of org.drools.core.reteoo.builder.PhreakNodeFactory in project drools by kiegroup.
the class ReteooWorkingMemoryTest method testDifferentEntryPointsOnSameFact.
@Test
public void testDifferentEntryPointsOnSameFact() {
// JBRULES-2971
InternalKnowledgeBase kBase = KnowledgeBaseFactory.newKnowledgeBase();
Rete rete = kBase.getRete();
NodeFactory nFacotry = new PhreakNodeFactory();
EntryPointNode epn = nFacotry.buildEntryPointNode(kBase.getReteooBuilder().getNodeIdsGenerator().getNextId(), RuleBasePartitionId.MAIN_PARTITION, kBase.getConfiguration().isMultithreadEvaluation(), rete, new EntryPointId("xxx"));
kBase.getRete().addObjectSink(epn);
KieSession ksession = kBase.newKieSession();
FactHandle f1 = ksession.insert("f1");
EntryPoint ep = ksession.getEntryPoint("xxx");
try {
ep.update(f1, "s1");
fail("Should throw an exception");
} catch (IllegalArgumentException e) {
}
try {
ep.retract(f1);
fail("Should throw an exception");
} catch (IllegalArgumentException e) {
}
ksession.update(f1, "s1");
assertNotNull(ksession.getObject(f1));
ksession.retract(f1);
ksession.retract(f1);
assertNull(ksession.getObject(f1));
}
use of org.drools.core.reteoo.builder.PhreakNodeFactory in project drools by kiegroup.
the class AddRemoveTest method testAdd.
@Test
public void testAdd() {
/*
* create a RuleBase with a single ObjectTypeNode we attach a
* MockObjectSink so we can detect assertions and retractions
*/
InternalKnowledgeBase kBase = KnowledgeBaseFactory.newKnowledgeBase();
BuildContext context = new BuildContext(kBase, Collections.emptyList());
NodeFactory nFacotry = new PhreakNodeFactory();
EntryPointNode entryPoint = context.getRuleBase().getRete().getEntryPointNodes().values().iterator().next();
final ObjectTypeNode objectTypeNode = nFacotry.buildObjectTypeNode(0, entryPoint, new ClassObjectType(Object.class), context);
objectTypeNode.attach(context);
final MockObjectSink sink = new MockObjectSink();
objectTypeNode.addObjectSink(sink);
kBase.newKieSession();
// objectTypeNode.
}
Aggregations