package ru.vyarus.guice.ext.postconstruct; import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.ProvisionException; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import ru.vyarus.guice.ext.ExtAnnotationsModule; import ru.vyarus.guice.ext.log.LogTest; import javax.annotation.PostConstruct; import static org.junit.Assert.*; /** * @author Vyacheslav Rusakov * @since 30.06.2014 */ public class PostConstructTest { Injector injector; @Before public void setUp() throws Exception { injector = Guice.createInjector(new ExtAnnotationsModule()); } @Test public void testSuccess() throws Exception { OkBean bean = injector.getInstance(OkBean.class); assertEquals(2, bean.counter); } @Test(expected = ProvisionException.class) public void testFail() throws Exception { injector.getInstance(KoBean.class); } @Test(expected = ProvisionException.class) public void testExceptionFail() throws Exception { injector.getInstance(KoExceptionBean.class); } public static class OkBean { private int counter; @PostConstruct public void init() { counter++; } @PostConstruct private void init2() { counter++; } } public static class KoBean { @PostConstruct public void init(Object smth) { } } public static class KoExceptionBean { @PostConstruct public void init() { throw new IllegalStateException("foo"); } } }