use of org.drools.core.io.impl.ByteArrayResource in project drools by kiegroup.
the class ExtendsTest method testExtendCircular.
@Test
public void testExtendCircular() throws Exception {
String s1 = "package org.drools;\n" + "global java.util.List list;\n" + "\n" + "declare Bean1 extends Bean2 \n" + " foo : int @key\n" + "end\n" + "" + "declare Bean2 extends Bean3 \n" + " foo : int @key\n" + "end\n" + "" + "declare Bean3 extends Bean1 \n" + " foo : int @key\n" + "end\n";
KnowledgeBuilder kBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kBuilder.add(new ByteArrayResource(s1.getBytes()), ResourceType.DRL);
assertTrue(kBuilder.hasErrors());
System.out.println(kBuilder.getErrors());
assertTrue(kBuilder.getErrors().toString().contains("circular"));
}
use of org.drools.core.io.impl.ByteArrayResource in project drools by kiegroup.
the class ExtendsTest method testDeclareExtendsJavaParent.
@Test
public void testDeclareExtendsJavaParent() {
String drl = "package org.drools.test; \n" + "import org.drools.compiler.Person; \n" + "declare Student extends Person end \n" + "";
KnowledgeBuilder kBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kBuilder.add(new ByteArrayResource(drl.getBytes()), ResourceType.DRL);
if (kBuilder.hasErrors()) {
System.err.println(kBuilder.getErrors());
}
assertFalse(kBuilder.hasErrors());
}
use of org.drools.core.io.impl.ByteArrayResource in project drools by kiegroup.
the class ExtendsTest method testMultipleInheritanceWithPosition7.
@Test
public void testMultipleInheritanceWithPosition7() 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(2)\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("field2", sw.getFields().get(1).getName());
assertEquals("mfield0", sw.getFields().get(2).getName());
assertEquals("field1", sw.getFields().get(3).getName());
assertEquals("field3", sw.getFields().get(4).getName());
assertEquals("mfield1", sw.getFields().get(5).getName());
}
use of org.drools.core.io.impl.ByteArrayResource in project drools by kiegroup.
the class ExtendsTest method testMultipleInheritanceWithPosition3.
@Test
public void testMultipleInheritanceWithPosition3() 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("field0", sw.getFields().get(0).getName());
assertEquals("field2", sw.getFields().get(1).getName());
assertEquals("field1", sw.getFields().get(2).getName());
assertEquals("mfield1", sw.getFields().get(3).getName());
assertEquals("mfield0", sw.getFields().get(4).getName());
}
use of org.drools.core.io.impl.ByteArrayResource in project drools by kiegroup.
the class ExtendsTest method testMultipleInheritanceWithPosition4.
@Test
public void testMultipleInheritanceWithPosition4() throws Exception {
// DROOLS-249
String drl = "package org.drools.test\n" + "declare trait PosTrait\n" + "@propertyReactive\n" + " field0 : int = 100 @position(1)\n" + " field1 : int = 101 @position(0)\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("field1", sw.getFields().get(0).getName());
assertEquals("field2", sw.getFields().get(1).getName());
assertEquals("mfield0", sw.getFields().get(2).getName());
assertEquals("field0", sw.getFields().get(3).getName());
assertEquals("mfield1", sw.getFields().get(4).getName());
}
Aggregations