@Test
public void testTypeDeclarationNewBean() throws Exception {
PackageDescr pkgDescr = new PackageDescr( "org.drools.compiler.test" );
TypeDeclarationDescr typeDescr = new TypeDeclarationDescr( "NewBean" );
TypeFieldDescr f1 = new TypeFieldDescr( "name",
new PatternDescr( "String" ) );
TypeFieldDescr f2 = new TypeFieldDescr( "age",
new PatternDescr( "int" ) );
typeDescr.addField( f1 );
typeDescr.addField( f2 );
pkgDescr.addTypeDeclaration( typeDescr );
KnowledgeBuilderImpl builder = new KnowledgeBuilderImpl();
builder.addPackage( pkgDescr );
InternalKnowledgePackage pkg = builder.getPackage(pkgDescr.getName());
assertEquals( 1,
pkg.getTypeDeclarations().size() );
TypeDeclaration type = pkg.getTypeDeclaration( "NewBean" );
assertEquals( "NewBean",
type.getTypeName() );
assertEquals( Role.Type.FACT,
type.getRole() );
assertEquals( "org.drools.compiler.test.NewBean",
type.getTypeClass().getName() );
assertFalse( builder.hasErrors() );
InternalKnowledgePackage bp = builder.getPackage(pkgDescr.getName());
Class newBean = bp.getPackageClassLoader().loadClass( "org.drools.compiler.test.NewBean" );
assertNotNull( newBean );
}