Search in sources :

Example 16 with Rule

use of org.kie.api.definition.rule.Rule in project drools by kiegroup.

the class AttributesTest method testRuleAttributes.

@Test
public void testRuleAttributes() throws Exception {
    setKSession(getModelSession(source, VERBOSE));
    setKbase(getKSession().getKieBase());
    checkGeneratedRules();
    for (Rule r : getKbase().getKiePackage("org.drools.pmml.attribs.test").getRules()) {
        assertEquals("test-rf", ((RuleImpl) r).getAgendaGroup());
        assertEquals("test-rf", ((RuleImpl) r).getRuleFlowGroup());
    }
}
Also used : Rule(org.kie.api.definition.rule.Rule) DroolsAbstractPMMLTest(org.drools.pmml.pmml_4_2.DroolsAbstractPMMLTest) Test(org.junit.Test)

Example 17 with Rule

use of org.kie.api.definition.rule.Rule in project drools by kiegroup.

the class KieModuleMavenTest method testKieContainerBeforeAndAfterDeployOfSnapshot.

@Test
public void testKieContainerBeforeAndAfterDeployOfSnapshot() throws Exception {
    // BZ-1007977
    KieServices ks = KieServices.Factory.get();
    String group = "org.kie.test";
    String artifact = "test-module";
    String version = "1.0.0-SNAPSHOT";
    ReleaseId releaseId = ks.newReleaseId(group, artifact, version);
    String prefix = new File(".").getAbsolutePath().contains("kie-ci") ? "" : "kie-ci/";
    File kjar = new File(prefix + "src/test/resources/kjar/kjar-module-before.jar");
    File pom = new File(prefix + "src/test/resources/kjar/pom-kjar.xml");
    MavenRepository repository = getMavenRepository();
    repository.installArtifact(releaseId, kjar, pom);
    KieContainer kContainer = ks.newKieContainer(releaseId);
    KieBase kbase = kContainer.getKieBase();
    assertNotNull(kbase);
    Collection<KiePackage> packages = kbase.getKiePackages();
    assertNotNull(packages);
    assertEquals(1, packages.size());
    Collection<Rule> rules = packages.iterator().next().getRules();
    assertEquals(2, rules.size());
    ks.getRepository().removeKieModule(releaseId);
    // deploy new version
    File kjar1 = new File(prefix + "src/test/resources/kjar/kjar-module-after.jar");
    File pom1 = new File(prefix + "src/test/resources/kjar/pom-kjar.xml");
    repository.installArtifact(releaseId, kjar1, pom1);
    KieContainer kContainer2 = ks.newKieContainer(releaseId);
    KieBase kbase2 = kContainer2.getKieBase();
    assertNotNull(kbase2);
    Collection<KiePackage> packages2 = kbase2.getKiePackages();
    assertNotNull(packages2);
    assertEquals(1, packages2.size());
    Collection<Rule> rules2 = packages2.iterator().next().getRules();
    assertEquals(4, rules2.size());
    ks.getRepository().removeKieModule(releaseId);
}
Also used : MavenRepository.getMavenRepository(org.appformer.maven.integration.MavenRepository.getMavenRepository) MavenRepository(org.appformer.maven.integration.MavenRepository) KiePackage(org.kie.api.definition.KiePackage) KieBase(org.kie.api.KieBase) KieServices(org.kie.api.KieServices) ReleaseId(org.kie.api.builder.ReleaseId) Rule(org.kie.api.definition.rule.Rule) File(java.io.File) KieContainer(org.kie.api.runtime.KieContainer) Test(org.junit.Test)

Example 18 with Rule

use of org.kie.api.definition.rule.Rule in project drools by kiegroup.

the class IndexingTest method testAlphaNodeSharing.

@Test()
public void testAlphaNodeSharing() {
    String drl = "";
    drl += "package org.drools.compiler.test\n";
    drl += "import " + Person.class.getCanonicalName() + "\n";
    drl += "rule r1\n";
    drl += "when\n";
    drl += "   Person(name == \"Mark\")\n";
    drl += "then\n";
    drl += "end\n";
    drl += "rule r2\n";
    drl += "when\n";
    drl += "   Person(name == \"Mark\", age == 40)\n";
    drl += "then\n";
    drl += "end\n";
    drl += "rule r3\n";
    drl += "when\n";
    drl += "   Person(name == \"Mark\", age == 50)\n";
    drl += "then\n";
    drl += "end\n";
    drl += "rule r4\n";
    drl += "when\n";
    drl += "   Person(name == \"John\", age == 60)\n";
    drl += "then\n";
    drl += "end\n";
    KieBase kbase = loadKnowledgeBaseFromString(drl);
    Map<String, Rule> rules = rulestoMap(kbase);
    ObjectTypeNode otn = getObjectTypeNode(kbase, Person.class);
    InternalWorkingMemory wm = ((StatefulKnowledgeSessionImpl) kbase.newKieSession());
    assertEquals(2, otn.getObjectSinkPropagator().size());
    AlphaNode a1 = (AlphaNode) otn.getObjectSinkPropagator().getSinks()[0];
    assertEquals(3, a1.getObjectSinkPropagator().size());
    assertEquals(3, a1.getAssociationsSize());
    assertTrue(a1.isAssociatedWith(rules.get("r1")));
    assertTrue(a1.isAssociatedWith(rules.get("r2")));
    assertTrue(a1.isAssociatedWith(rules.get("r3")));
    AlphaNode a2 = (AlphaNode) otn.getObjectSinkPropagator().getSinks()[1];
    assertEquals(1, a2.getAssociationsSize());
    assertEquals(1, a2.getObjectSinkPropagator().size());
    assertTrue(a2.isAssociatedWith(rules.get("r4")));
}
Also used : InternalWorkingMemory(org.drools.core.common.InternalWorkingMemory) KieBase(org.kie.api.KieBase) ObjectTypeNode(org.drools.core.reteoo.ObjectTypeNode) Rule(org.kie.api.definition.rule.Rule) Person(org.drools.compiler.Person) AlphaNode(org.drools.core.reteoo.AlphaNode) Test(org.junit.Test)

Example 19 with Rule

use of org.kie.api.definition.rule.Rule in project drools by kiegroup.

the class KieBaseIncludesTest method getNumberOfRules.

/**
 * Helper method which determines the number of rules in the {@link KieBase}.
 *
 * @param kieBase
 *            the {@link KieBase}
 * @return the number of rules in the {@link KieBase}
 */
private static long getNumberOfRules(KieBase kieBase) {
    long nrOfRules = 0;
    Collection<KiePackage> kiePackages = kieBase.getKiePackages();
    for (KiePackage nextKiePackage : kiePackages) {
        Collection<Rule> rules = nextKiePackage.getRules();
        System.out.println(rules);
        nrOfRules += rules.size();
    }
    return nrOfRules;
}
Also used : KiePackage(org.kie.api.definition.KiePackage) Rule(org.kie.api.definition.rule.Rule)

Example 20 with Rule

use of org.kie.api.definition.rule.Rule in project drools by kiegroup.

the class AnnotationsTest method testRuleAnnotation.

@Test
public void testRuleAnnotation() {
    String drl = "package org.drools.compiler.integrationtests\n" + "import " + Person.class.getCanonicalName() + "; \n" + "rule X\n" + "    @author(\"John Doe\")\n" + // backward compatibility
    "    @output(Hello World!)\n" + "    @value( 10 + 10 )\n" + "    @alt( \"Hello \"+\"World!\" )\n" + "when\n" + "    Person()\n" + "then\n" + "end";
    KieBaseConfiguration conf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration();
    conf.setOption(EventProcessingOption.STREAM);
    conf.setOption(MBeansOption.ENABLED);
    KieBase kbase = loadKnowledgeBase("kb1", drl, conf);
    Rule rule = kbase.getRule("org.drools.compiler.integrationtests", "X");
    assertEquals("John Doe", rule.getMetaData().get("author"));
    assertEquals("Hello World!", rule.getMetaData().get("output"));
    assertEquals(20, ((Number) rule.getMetaData().get("value")).intValue());
    assertEquals("Hello World!", rule.getMetaData().get("alt"));
}
Also used : KieBaseConfiguration(org.kie.api.KieBaseConfiguration) KieBase(org.kie.api.KieBase) Rule(org.kie.api.definition.rule.Rule) Person(org.drools.compiler.Person) Test(org.junit.Test)

Aggregations

Rule (org.kie.api.definition.rule.Rule)30 Test (org.junit.Test)23 ArrayList (java.util.ArrayList)13 KieSession (org.kie.api.runtime.KieSession)11 List (java.util.List)10 InternalFactHandle (org.drools.core.common.InternalFactHandle)8 StatelessKieSession (org.kie.api.runtime.StatelessKieSession)8 KieBase (org.kie.api.KieBase)7 KiePackage (org.kie.api.definition.KiePackage)7 Map (java.util.Map)5 LeftTuple (org.drools.core.reteoo.LeftTuple)5 HashMap (java.util.HashMap)4 InternalWorkingMemory (org.drools.core.common.InternalWorkingMemory)4 RuleImpl (org.drools.core.definitions.rule.impl.RuleImpl)4 KieServices (org.kie.api.KieServices)4 HashSet (java.util.HashSet)3 Person (org.drools.compiler.Person)3 ReleaseId (org.kie.api.builder.ReleaseId)3 KieHelper (org.kie.internal.utils.KieHelper)3 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)2