Package org.dayatang.ioc.tapestry.factory

Source Code of org.dayatang.ioc.tapestry.factory.TapestryInstanceProviderTest

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.*;
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() {
        Service service = provider.getInstance(Service.class, "service1");
        assertEquals("I am Service 1", service.sayHello());
    }

    @Test
    public void testConstructorFromRegistry() {
        TapestryInstanceProvider provider2 = new TapestryInstanceProvider(createRegistry(TapestryModule.class));
        Service2 service = provider2.getInstance(Service2.class);
        assertEquals("I am Service 21", service.sayHello());
        provider2.shutdown();
    }

    private Registry createRegistry(Class<?>... moduleClass) {
        RegistryBuilder builder = new RegistryBuilder();
        for (Class<?> clazz : moduleClass) {
            builder.add(clazz);
        }
        return builder.build();
    }
}
TOP

Related Classes of org.dayatang.ioc.tapestry.factory.TapestryInstanceProviderTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.