@Test public void testOverrideFromDeeperHierarchyParentInterface() { // inherits role from and typesafe from the other String str = ""+ "package org.drools.compiler.test \n" + "global java.util.List list \n" + "declare " + IA.class.getCanonicalName() + "\n" + " @typesafe(true)\n" + " @role(event)\n" + "end\n" + "declare " + IB.class.getCanonicalName() + "\n" + " @role(fact)\n" + "end\n" + "declare " + DImpl.class.getCanonicalName() + "\n" + "end\n"; KnowledgeBuilderImpl builder = getPackageBuilder( str ); TypeDeclaration tdecl = builder.getTypeDeclaration( DImpl.class ); assertEquals( true, tdecl.isTypesafe() ); assertEquals( Role.Type.FACT, tdecl.getRole() ); }
@Test public void testInheritExitenceFromParentClass() { // inherits role and typesafe String str = ""+ "package org.drools.compiler.test \n" + "global java.util.List list \n" + "declare " + CImpl.class.getCanonicalName() + "\n" + " @typesafe(true)\n" + " @role(event)\n" + "end\n" + "declare " + DImpl.class.getCanonicalName() + "\n" + "end\n"; KnowledgeBuilderImpl builder = getPackageBuilder( str ); TypeDeclaration tdecl = builder.getTypeDeclaration( DImpl.class ); assertEquals( true, tdecl.isTypesafe() ); assertEquals( Role.Type.EVENT, tdecl.getRole() ); }
@Test public void testOverrideFromDeeperParentInterface() { // inherits role but not typesafe String str = ""+ "package org.drools.compiler.test \n" + "global java.util.List list \n" + "declare " + IA.class.getCanonicalName() + "\n" + " @typesafe(true)\n" + " @role(event)\n" + "end\n" + "declare " + DImpl.class.getCanonicalName() + "\n" + " @typesafe(false)\n" + "end\n"; KnowledgeBuilderImpl builder = getPackageBuilder( str ); TypeDeclaration tdecl = builder.getTypeDeclaration( DImpl.class ); assertEquals( false, tdecl.isTypesafe() ); assertEquals( Role.Type.EVENT, tdecl.getRole() ); }
@Test public void testInheritExitenceFromParentInterface() { // inherits role and typesafe String str = ""+ "package org.drools.compiler.test \n" + "global java.util.List list \n" + "declare " + IB.class.getCanonicalName() + "\n" + " @typesafe(true)\n" + " @role(event)\n" + "end\n" + "declare " + DImpl.class.getCanonicalName() + "\n" + "end\n"; KnowledgeBuilderImpl builder = getPackageBuilder( str ); TypeDeclaration tdecl = builder.getTypeDeclaration( DImpl.class ); assertEquals( true, tdecl.isTypesafe() ); assertEquals( Role.Type.EVENT, tdecl.getRole() ); }
@Test public void testOverrideFromMixedHierarchyParentInterface() { // inherits role from and typesafe from the other String str = ""+ "package org.drools.compiler.test \n" + "global java.util.List list \n" + "declare " + IA.class.getCanonicalName() + "\n" + " @typesafe(true)\n" + " @role(event)\n" + "end\n" + "declare " + CImpl.class.getCanonicalName() + "\n" + " @role(fact)\n" + "end\n" + "declare " + DImpl.class.getCanonicalName() + "\n" + "end\n"; KnowledgeBuilderImpl builder = getPackageBuilder( str ); TypeDeclaration tdecl = builder.getTypeDeclaration( DImpl.class ); assertEquals( true, tdecl.isTypesafe() ); assertEquals( Role.Type.FACT, tdecl.getRole() ); }
@Test public void testOverrideFromParentInterface() { // inherits role but not typesafe String str = ""+ "package org.drools.compiler.test \n" + "global java.util.List list \n" + "declare " + IB.class.getCanonicalName() + "\n" + " @typesafe(true)\n" + " @role(event)\n" + "end\n" + "declare " + DImpl.class.getCanonicalName() + "\n" + " @typesafe(false)\n" + "end\n"; KnowledgeBuilderImpl builder = getPackageBuilder( str ); TypeDeclaration tdecl = builder.getTypeDeclaration( DImpl.class ); assertEquals( false, tdecl.isTypesafe() ); assertEquals( Role.Type.EVENT, tdecl.getRole() ); }
@Test public void testOverrideFromParentClass() { // inherits role, but not typesafe String str = ""+ "package org.drools.compiler.test \n" + "global java.util.List list \n" + "declare " + CImpl.class.getCanonicalName() + "\n" + " @typesafe(true)\n" + " @role(event)\n" + "end\n" + "declare " + DImpl.class.getCanonicalName() + "\n" + " @typesafe(false)\n" + "end\n"; KnowledgeBuilderImpl builder = getPackageBuilder( str ); TypeDeclaration tdecl = builder.getTypeDeclaration( DImpl.class ); assertEquals( false, tdecl.isTypesafe() ); assertEquals( Role.Type.EVENT, tdecl.getRole() ); }
@Test public void testInheritNoneExitenceFromParentInterface() { // inherits role and typesafe String str = ""+ "package org.drools.compiler.test \n" + "global java.util.List list \n" + "declare " + IB.class.getCanonicalName() + "\n" + " @typesafe(true)\n" + " @role(event)\n" + "end\n"; KnowledgeBuilderImpl builder = getPackageBuilder( str ); TypeDeclaration tdecl = builder.getTypeDeclaration( DImpl.class ); assertEquals( true, tdecl.isTypesafe() ); assertEquals( Role.Type.EVENT, tdecl.getRole() ); }
@Test public void testInheritNoneExitenceFromParentClass() { // inherits role and typesafe String str = ""+ "package org.drools.compiler.test \n" + "global java.util.List list \n" + "declare " + CImpl.class.getCanonicalName() + "\n" + " @typesafe(true)\n" + " @role(event)\n" + "end\n"; KnowledgeBuilderImpl builder = getPackageBuilder( str ); TypeDeclaration tdecl = builder.getTypeDeclaration( DImpl.class ); assertEquals( true, tdecl.isTypesafe() ); assertEquals( Role.Type.EVENT, tdecl.getRole() ); }
@Test public void testTypeDeclaration() throws Exception { PackageDescr pkgDescr = new PackageDescr( "org.drools.compiler" ); TypeDeclarationDescr typeDescr = new TypeDeclarationDescr( "StockTick" ); typeDescr.addAnnotation( Role.class.getCanonicalName(), "Event" ); typeDescr.addAnnotation( TypeSafe.class.getCanonicalName(), "true" ); pkgDescr.addTypeDeclaration( typeDescr ); KnowledgeBuilderImpl builder = new KnowledgeBuilderImpl(); builder.addPackage( pkgDescr ); if ( builder.hasErrors() ) { fail( builder.getErrors().toString() ); } InternalKnowledgePackage pkg = builder.getPackage(pkgDescr.getName()); assertEquals( 1, pkg.getTypeDeclarations().size() ); TypeDeclaration type = pkg.getTypeDeclaration( "StockTick" ); assertTrue( type.isTypesafe() ); assertEquals( Role.Type.EVENT, type.getRole() ); assertEquals( StockTick.class, type.getTypeClass() ); }