Search in sources :

Example 6 with FactType

use of org.kie.api.definition.type.FactType in project drools by kiegroup.

the class DRLTest method testDRLWithoutPackageDeclaration.

@Test
public void testDRLWithoutPackageDeclaration() throws Exception {
    final KieBase kbase = loadKnowledgeBase("test_NoPackageDeclaration.drl");
    // no package defined, so it is set to the default
    final FactType factType = kbase.getFactType("defaultpkg", "Person");
    assertNotNull(factType);
    final Object bob = factType.newInstance();
    factType.set(bob, "name", "Bob");
    factType.set(bob, "age", Integer.valueOf(30));
    final KieSession session = createKnowledgeSession(kbase);
    final List results = new ArrayList();
    session.setGlobal("results", results);
    session.insert(bob);
    session.fireAllRules();
    assertEquals(1, results.size());
    assertEquals(bob, results.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) FactType(org.kie.api.definition.type.FactType) Test(org.junit.Test)

Example 7 with FactType

use of org.kie.api.definition.type.FactType in project drools by kiegroup.

the class DeclareTest method testDeclaredFactAndFunction.

@Test
public void testDeclaredFactAndFunction() throws Exception {
    String rule = "package com.jboss.qa;\n";
    rule += "global java.util.List list\n";
    rule += "declare Address\n";
    rule += "    street: String\n";
    rule += "end\n";
    rule += "function void myFunction() {\n";
    rule += "}\n";
    rule += "rule \"r1\"\n";
    rule += "    dialect \"mvel\"\n";
    rule += "when\n";
    rule += "    Address()\n";
    rule += "then\n";
    rule += "    list.add(\"r1\");\n";
    rule += "end\n";
    final KieBase kbase = loadKnowledgeBaseFromString(rule);
    final KieSession session = createKnowledgeSession(kbase);
    List list = new ArrayList();
    session.setGlobal("list", list);
    final FactType addressFact = kbase.getFactType("com.jboss.qa", "Address");
    final Object address = addressFact.newInstance();
    session.insert(address);
    session.fireAllRules();
    list = (List) session.getGlobal("list");
    assertEquals(1, list.size());
    assertEquals("r1", 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) FactType(org.kie.api.definition.type.FactType) Test(org.junit.Test)

Example 8 with FactType

use of org.kie.api.definition.type.FactType in project drools by kiegroup.

the class DeclareTest method testDeclareAndFrom.

@Test
public void testDeclareAndFrom() throws Exception {
    final KieBase kbase = loadKnowledgeBase("test_DeclareWithFrom.drl");
    final FactType profileType = kbase.getFactType("org.drools.compiler", "Profile");
    final KieSession ksession = createKnowledgeSession(kbase);
    final Object profile = profileType.newInstance();
    final Map<String, Integer> map = new HashMap<String, Integer>();
    map.put("internet", Integer.valueOf(2));
    profileType.set(profile, "pageFreq", map);
    ksession.insert(profile);
    ksession.fireAllRules();
    ksession.dispose();
}
Also used : HashMap(java.util.HashMap) KieBase(org.kie.api.KieBase) KieSession(org.kie.api.runtime.KieSession) FactType(org.kie.api.definition.type.FactType) Test(org.junit.Test)

Example 9 with FactType

use of org.kie.api.definition.type.FactType in project drools by kiegroup.

the class IncrementalCompilationTest method doFire.

private void doFire(KieBase kbase, String reply) {
    FactType ftype = kbase.getFactType("org.drools.example.api.kiedeclare", "Message");
    KieSession kSession = kbase.newKieSession();
    kSession.insert(createMessage(ftype, "Dave", "What's the problem?"));
    assertEquals(1, kSession.fireAllRules());
    assertEquals(1, kSession.getObjects().size());
    Object fact = kSession.getObjects().iterator().next();
    assertEquals("HAL", ftype.get(fact, "name"));
    assertEquals(reply, ftype.get(fact, "text"));
    kSession.dispose();
}
Also used : StatelessKieSession(org.kie.api.runtime.StatelessKieSession) KieSession(org.kie.api.runtime.KieSession) FactType(org.kie.api.definition.type.FactType)

Example 10 with FactType

use of org.kie.api.definition.type.FactType in project drools by kiegroup.

the class StreamsTest method testAtomicActivationFiring.

@Test(timeout = 10000)
public void testAtomicActivationFiring() throws Exception {
    // JBRULES-3383
    String str = "package org.drools.compiler.test\n" + "declare Event\n" + "   @role(event)\n" + "   name : String\n" + "end\n" + "declare Monitor\n" + "   @role(event)\n" + "   event : Event\n" + "   name : String\n" + "end\n" + "\n" + "rule \"start monitoring\"\n" + "when\n" + "    $e : Event( $in : name )\n" + "    not Monitor( name == $in )\n" + "then\n" + "    Monitor m = new Monitor( $e, $in );\n" + "    insert( m );\n" + "end\n" + "\n" + "rule \"stop monitoring\"\n" + "timer( int: 1s )\n" + "when\n" + "    $m : Monitor( $in : name )\n" + "    $e : Event( name == $in )\n" + "then\n" + "    retract( $m );\n" + "    retract( $m.getEvent() );\n" + "end\n" + "rule \"halt\"\n" + "salience -1\n" + "when\n" + "    not Event( )\n" + "then\n" + "    drools.halt();\n" + "end\n";
    KieBaseConfiguration kBaseConfig = KnowledgeBaseFactory.newKnowledgeBaseConfiguration();
    kBaseConfig.setOption(EventProcessingOption.STREAM);
    KieBase kbase = loadKnowledgeBaseFromString(kBaseConfig, str);
    KieSession ksession = createKnowledgeSession(kbase);
    ksession.addEventListener(new org.kie.api.event.rule.DebugAgendaEventListener());
    FactType eventType = kbase.getFactType("org.drools.compiler.test", "Event");
    Object event = eventType.newInstance();
    eventType.set(event, "name", "myName");
    ksession.insert(event);
    ksession.fireUntilHalt();
}
Also used : KieBaseConfiguration(org.kie.api.KieBaseConfiguration) KieBase(org.kie.api.KieBase) KieSession(org.kie.api.runtime.KieSession) FactType(org.kie.api.definition.type.FactType) Test(org.junit.Test)

Aggregations

FactType (org.kie.api.definition.type.FactType)208 Test (org.junit.Test)193 KieSession (org.kie.api.runtime.KieSession)114 KieBase (org.kie.api.KieBase)63 DroolsAbstractPMMLTest (org.drools.pmml.pmml_4_2.DroolsAbstractPMMLTest)45 DroolsAbstractPMMLTest (org.kie.pmml.pmml_4_2.DroolsAbstractPMMLTest)31 ArrayList (java.util.ArrayList)28 InternalKnowledgeBase (org.drools.core.impl.InternalKnowledgeBase)27 KnowledgeBuilder (org.kie.internal.builder.KnowledgeBuilder)27 KieServices (org.kie.api.KieServices)22 ByteArrayResource (org.drools.core.io.impl.ByteArrayResource)18 Resource (org.kie.api.io.Resource)17 KieBuilder (org.kie.api.builder.KieBuilder)16 ClassObjectFilter (org.kie.api.runtime.ClassObjectFilter)16 KieFileSystem (org.kie.api.builder.KieFileSystem)15 KieContainer (org.kie.api.runtime.KieContainer)15 List (java.util.List)10 Results (org.kie.api.builder.Results)10 NamedEntryPoint (org.drools.core.common.NamedEntryPoint)9 LogicalTypeInconsistencyException (org.drools.core.factmodel.traits.LogicalTypeInconsistencyException)9