package org.jooby.internal.camel; import static org.easymock.EasyMock.expect; import static org.junit.Assert.assertEquals; import org.jooby.test.MockUnit; import org.junit.Test; import com.google.inject.Injector; public class GuiceInjectorTest { @Test public void defaults() throws Exception { new MockUnit(Injector.class) .run(unit -> { new GuiceInjector(unit.get(Injector.class)); }); } @Test public void newInstance() throws Exception { Object value = new Object(); new MockUnit(Injector.class) .expect(unit -> { Injector injector = unit.get(Injector.class); expect(injector.getInstance(Object.class)).andReturn(value); }) .run(unit -> { assertEquals(value, new GuiceInjector(unit.get(Injector.class)).newInstance(Object.class)); }); } @Test public void newSingletonInstance() throws Exception { Object value = new Object(); new MockUnit(Injector.class) .expect(unit -> { Injector injector = unit.get(Injector.class); expect(injector.getInstance(Object.class)).andReturn(value); }) .run(unit -> { assertEquals(value, new GuiceInjector(unit.get(Injector.class)).newInstance( Object.class, new Object())); }); } @Test(expected = NullPointerException.class) public void nullInjector() throws Exception { new GuiceInjector(null); } }