package extensions.datasources.scriptable; import org.junit.Test; import org.pentaho.reporting.engine.classic.core.ClassicEngineBoot; import org.pentaho.reporting.engine.classic.core.metadata.DataFactoryMetaData; import org.pentaho.reporting.engine.classic.core.metadata.DataFactoryRegistry; import org.pentaho.reporting.engine.classic.extensions.datasources.scriptable.ScriptableDataFactoryModule; import org.pentaho.reporting.libraries.base.boot.ModuleInfo; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; public class ScriptableDataFactoryModuleIT { private static final String DATA_FACTORY_ID = "org.pentaho.reporting.engine.classic.extensions.datasources.scriptable.ScriptableDataFactory"; @Test public void testInitialize() throws Exception { ClassicEngineBoot.getInstance().start(); ScriptableDataFactoryModule module = new ScriptableDataFactoryModule(); module.initialize( null ); assertThat( module.getDescription(), is( equalTo( "test description" ) ) ); assertThat( module.getMajorVersion(), is( equalTo( "1" ) ) ); assertThat( module.getMinorVersion(), is( equalTo( "1" ) ) ); assertThat( module.getPatchLevel(), is( equalTo( "0" ) ) ); assertThat( module.getName(), is( equalTo( "test-module-name" ) ) ); assertThat( module.getProducer(), is( equalTo( "test producer" ) ) ); ModuleInfo[] requiredModules = module.getRequiredModules(); assertThat( requiredModules.length, is( equalTo( 1 ) ) ); ModuleInfo requiredModule = requiredModules[0]; assertThat( requiredModule.getModuleClass(), is( equalTo( "test.required.module.class" ) ) ); assertThat( requiredModule.getMinorVersion(), is( equalTo( "2" ) ) ); assertThat( requiredModule.getMajorVersion(), is( equalTo( "2" ) ) ); assertThat( requiredModule.getPatchLevel(), is( equalTo( "1" ) ) ); ModuleInfo[] optionalModules = module.getOptionalModules(); assertThat( optionalModules.length, is( equalTo( 1 ) ) ); ModuleInfo optionalModule = optionalModules[0]; assertThat( optionalModule.getModuleClass(), is( equalTo( "test.optional.module.class" ) ) ); assertThat( optionalModule.getMinorVersion(), is( equalTo( "1" ) ) ); assertThat( optionalModule.getMajorVersion(), is( equalTo( "1" ) ) ); assertThat( optionalModule.getPatchLevel(), is( equalTo( "0" ) ) ); assertThat( DataFactoryRegistry.getInstance().isRegistered( DATA_FACTORY_ID ), is( equalTo( true ) ) ); DataFactoryMetaData meta = DataFactoryRegistry.getInstance().getMetaData( DATA_FACTORY_ID ); assertThat( meta.getBundleLocation(), is( equalTo( "org.pentaho.reporting.engine.classic.extensions.datasources.scriptable.ScriptableDataFactoryBundle" ) ) ); assertThat( meta.isExpert(), is( equalTo( true ) ) ); } }