use of org.kie.internal.builder.KnowledgeBuilder in project drools by kiegroup.
the class KnowledgeBuilderTest method testRepeatedDeclarationInMultiplePackages.
@Test
public void testRepeatedDeclarationInMultiplePackages() {
String str = "package org.drools.test1;\n" + "import org.drools.compiler.Cheese;\n" + "" + "rule R\n" + "when Cheese() then end \n" + "";
String str2 = "package org.drools.test2;\n" + "import org.drools.compiler.Cheese;\n" + "" + "rule S\n" + "when Cheese() then end \n" + "";
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newByteArrayResource(str.getBytes()), ResourceType.DRL);
kbuilder.add(ResourceFactory.newByteArrayResource(str2.getBytes()), ResourceType.DRL);
assertEquals(3, kbuilder.getKnowledgePackages().size());
for (KiePackage kp : kbuilder.getKnowledgePackages()) {
KnowledgePackageImpl kpi = (KnowledgePackageImpl) kp;
TypeDeclaration cheez = kpi.getTypeDeclaration("Cheese");
if ("org.drools.compiler".equals(kpi.getName())) {
assertNotNull(cheez);
} else {
assertNull(cheez);
}
}
}
use of org.kie.internal.builder.KnowledgeBuilder in project drools by kiegroup.
the class KnowledgeBuilderTest method testAddPackageSingle.
@Test
public void testAddPackageSingle() throws Exception {
String rule = "package org.drools.compiler.test\n" + "import org.drools.compiler.StockTick\n" + "rule R1 when\n" + " StockTick()\n" + "then\n" + "end\n";
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newByteArrayResource(rule.getBytes()), ResourceType.DRL);
assertFalse(kbuilder.getErrors().toString(), kbuilder.hasErrors());
Collection<KiePackage> kpkgs = kbuilder.getKnowledgePackages();
assertEquals(2, kpkgs.size());
KiePackage kpkg = kpkgs.iterator().next();
assertEquals(1, kpkg.getRules().size());
}
use of org.kie.internal.builder.KnowledgeBuilder in project drools by kiegroup.
the class ExtendsTest method testMultipleInheritanceWithPosition6.
@Test
public void testMultipleInheritanceWithPosition6() throws Exception {
// DROOLS-249
String drl = "package org.drools.test\n" + "declare trait PosTrait\n" + "@propertyReactive\n" + " field0 : int = 100 //@position(0)\n" + " field1 : int = 101 //@position(1)\n" + " field2 : int = 102 //@position(0)\n" + "end\n" + "\n" + "declare trait SecPosTrait\n" + "@propertyReactive\n" + " field3 : int = 100 //@position(0)\n" + " field1 : int = 101 //@position(1)\n" + "end\n" + "\n" + "declare trait MultiInhPosTrait extends PosTrait, SecPosTrait\n" + "@propertyReactive\n" + " mfield0 : int = 200 //@position(0)\n" + " mfield1 : int = 201 //@position(2)\n" + "end";
KnowledgeBuilder kBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kBuilder.add(new ByteArrayResource(drl.getBytes()), ResourceType.DRL);
if (kBuilder.hasErrors()) {
System.err.println(kBuilder.getErrors());
}
assertFalse(kBuilder.hasErrors());
InternalKnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
knowledgeBase.addPackages(kBuilder.getKnowledgePackages());
FactType sw = knowledgeBase.getFactType("org.drools.test", "MultiInhPosTrait");
assertEquals(6, sw.getFields().size());
assertEquals("field0", sw.getFields().get(0).getName());
assertEquals("field1", sw.getFields().get(1).getName());
assertEquals("field2", sw.getFields().get(2).getName());
assertEquals("field3", sw.getFields().get(3).getName());
assertEquals("mfield0", sw.getFields().get(4).getName());
assertEquals("mfield1", sw.getFields().get(5).getName());
}
use of org.kie.internal.builder.KnowledgeBuilder in project drools by kiegroup.
the class ExtendsTest method testMultipleInheritanceWithPosition2.
@Test
public void testMultipleInheritanceWithPosition2() throws Exception {
// DROOLS-249
String drl = "package org.drools.test\n" + "declare trait PosTrait\n" + "@propertyReactive\n" + " field0 : int = 100 //@position(0)\n" + " field1 : int = 101 //@position(1)\n" + " field2 : int = 102 //@position(0)\n" + "end\n" + "\n" + "declare trait MultiInhPosTrait extends PosTrait\n" + "@propertyReactive\n" + " mfield0 : int = 200 @position(0)\n" + " mfield1 : int = 201 @position(2)\n" + "end";
KnowledgeBuilder kBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kBuilder.add(new ByteArrayResource(drl.getBytes()), ResourceType.DRL);
if (kBuilder.hasErrors()) {
System.err.println(kBuilder.getErrors());
}
assertFalse(kBuilder.hasErrors());
InternalKnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
knowledgeBase.addPackages(kBuilder.getKnowledgePackages());
FactType sw = knowledgeBase.getFactType("org.drools.test", "MultiInhPosTrait");
assertEquals(5, sw.getFields().size());
assertEquals("mfield0", sw.getFields().get(0).getName());
assertEquals("field0", sw.getFields().get(1).getName());
assertEquals("mfield1", sw.getFields().get(2).getName());
assertEquals("field1", sw.getFields().get(3).getName());
assertEquals("field2", sw.getFields().get(4).getName());
}
use of org.kie.internal.builder.KnowledgeBuilder in project drools by kiegroup.
the class ExtendsTest method testDeclareExtendsMissingJavaParent.
@Test
public void testDeclareExtendsMissingJavaParent() {
String drl = "package org.drools.test; \n" + "import org.drools.compiler.integrationtests.ExtendsTest.Y; \n" + "declare Student extends Y end \n" + "";
KnowledgeBuilder kBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kBuilder.add(new ByteArrayResource(drl.getBytes()), ResourceType.DRL);
if (kBuilder.hasErrors()) {
System.err.println(kBuilder.getErrors());
}
assertTrue(kBuilder.hasErrors());
}
Aggregations