Hi 

In my test module 

has some binder calls and some contributions methods

        public static void bind(ServiceBinder binder) {
                // Make bind() calls on the binder object to define most IoC 
services.
                // Use service builder methods (example below) when the 
implementation
                // is provided inline, or requires more initialization than 
simply
                // invoking the constructor.
                
                binder.bind(ConfigAssetAliasManager.class,
ConfigAssetAliasManagerImpl.class);
                binder.bind(ConfigurationService.class,
PropertyReaderConfigurationServiceImpl.class);

        }

    @Marker(ConfigProvider.class)
    public AssetFactory buildConfigAssetFactory(ResourceCache resourceCache,    
            ConfigAssetAliasManager aliasManager, ConfigurationService
configuration) {
        return new ConfigAssetFactory(resourceCache, aliasManager,
configuration);
    }

        /** Add a new factory with the prefix "uri"
         * @param configuration
         * @param uriAssetFactory
         */
        public void contributeAssetSource(
                        MappedConfiguration<String, AssetFactory> configuration,
                        @ConfigProvider AssetFactory configAssetFactory) {
                configuration.add(AssetConstants.CONFIG_PREFIX, 
configAssetFactory);
        }

        /**
         * The MasterDispatcher is a chain-of-command of individual Dispatchers,
         * each handling (like a servlet) a particular kind of incoming request.
         */
        public void contributeMasterDispatcher(
                        OrderedConfiguration<Dispatcher> configuration,
                        ObjectLocator locator) {
                configuration.add("Config",
locator.autobuild(ConfigDispatcher.class),"before:Asset");
        }


The same methods are working fine in the main Application module and the
asset factory works fine.

However in my test case ( a simple pageTester render ) it´s complainining
when contributing to the services


java.lang.IllegalArgumentException: Contribution
com.ioko.frontend.services.MyPagesTestModule.contributeAssetSource(MappedConfiguration,
AssetFactory, AssetFactory) (at MyPagesTestModule.java:88) is for service
'AssetSource', which does not exist.
        at
org.apache.tapestry5.ioc.internal.RegistryImpl.validateContributeDefs(RegistryImpl.java:199)
        at
org.apache.tapestry5.ioc.internal.RegistryImpl.<init>(RegistryImpl.java:174)
        at 
org.apache.tapestry5.ioc.RegistryBuilder.build(RegistryBuilder.java:170)
        at
com.ioko.frontend.services.AbstractTestSuite.setup_registry(AbstractTestSuite.java:18)
        at
com.ioko.frontend.services.ConfigurationServiceTest.setup_registry(ConfigurationServiceTest.java:23)
        at
org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:62)

I read that I need to use some module dependancy so I added 

@SubModule (TapestryModule.class)
public class MyPagesTestModule {

Still is not working...

Now I got 

ERROR RequestExceptionHandler - Processing of request failed with uncaught
exception: Exception assembling root component of page URIAssetTestPage:
Could not convert 'asset:uri:file:///C:/temp/selected-cell.png' into a
component parameter binding: Unknown prefix for asset path
'uri:file:///C:/temp/selected-cell.png'.
java.lang.RuntimeException: Exception assembling root component of page
URIAssetTestPage: Could not convert
'asset:uri:file:///C:/temp/selected-cell.png' into a component parameter
binding: Unknown prefix for asset path
'uri:file:///C:/temp/selected-cell.png'.
        at
org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.assembleRootComponent(ComponentAssemblerImpl.java:110)
        at
org.apache.tapestry5.internal.pageload.PageLoaderImpl.loadPage(PageLoaderImpl.java:159)
        at $PageLoader_1288ce49865.loadPage($PageLoader_1288ce49865.java)
        at
org.apache.tapestry5.internal.services.PagePoolCache.checkout(PagePoolCache.java:210)
        at
org.apache.tapestry5.internal.services.PagePoolImpl.checkout(PagePoolImpl.java:99)
        at $PagePool_1288ce49864.checkout($PagePool_1288ce49864.java)
        at
org.apache.tapestry5.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:51)

A bit more digging shows that the contribute* methods are not invoked in
testing (I added breakpoints and they nerver are invoked..), which explains
everything

My understanding was that ALL contribution methods are invoked, but it seems
that in my MyPagesTestModule this is not true
Do I need to add some additional dependency aside of TapestryModule     ? (only
the service binders are invoked).
Is there something else I´ve missed?

PS: Everything works fine when I launch the application with mvn jetty:run,
I can see the components rendered correctly

Thanks!
 
-- 
View this message in context: 
http://tapestry-users.832.n2.nabble.com/Module-contributionMethods-not-invoked-from-testNG-tp5041340p5041340.html
Sent from the Tapestry Users mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to