package org.dayatang.ioc.tapestry.factory; import org.apache.tapestry5.ioc.Registry; import org.apache.tapestry5.ioc.RegistryBuilder; import org.dayatang.domain.InstanceProvider; import org.dayatang.ioc.test.AbstractInstanceProviderTest; import org.dayatang.ioc.test.Service1; import org.junit.After; import org.junit.Test; import static org.junit.Assert.assertEquals; public class TapestryInstanceProviderTest extends AbstractInstanceProviderTest { private Registry registry; @After public void tearDown() throws Exception { registry.shutdown(); registry = null; } @Override protected InstanceProvider createInstanceProvider() { registry = RegistryBuilder.buildAndStartupRegistry(TapestryModule.class); return new TapestryInstanceProvider(registry); } @Test public void testConstructorFromModule() { Service1 service = getProvider().getInstance(Service1.class); assertEquals("MyService1", service.name()); } @Test public void testConstructorFromRegistry() { TapestryInstanceProvider provider2 = new TapestryInstanceProvider(createRegistry(TapestryModule.class)); Service1 service = provider2.getInstance(Service1.class); assertEquals("MyService1", service.name()); provider2.shutdown(); } private Registry createRegistry(Class<?>... moduleClass) { RegistryBuilder builder = new RegistryBuilder(); for (Class<?> clazz : moduleClass) { builder.add(clazz); } return builder.build(); } }