Search in sources :

Example 46 with CreationException

use of com.google.inject.CreationException in project roboguice by roboguice.

the class CheckedProviderTest method testEarlyBindingError.

public void testEarlyBindingError() {
    try {
        Guice.createInjector(new AbstractModule() {

            @Override
            protected void configure() {
                ThrowingProviderBinder.create(binder()).bind(StringRemoteProvider.class, String.class).to(FailingProvider.class);
            }
        });
        fail();
    } catch (CreationException ce) {
        assertEquals("Could not find a suitable constructor in " + FailingProvider.class.getName() + ". Classes must have either one (and only one) constructor annotated with @Inject" + " or a zero-argument constructor that is not private.", Iterables.getOnlyElement(ce.getErrorMessages()).getMessage());
    }
}
Also used : CreationException(com.google.inject.CreationException) AbstractModule(com.google.inject.AbstractModule)

Example 47 with CreationException

use of com.google.inject.CreationException in project roboguice by roboguice.

the class CheckedProviderTest method testCxtorWithWrongException.

public void testCxtorWithWrongException() {
    try {
        Guice.createInjector(new AbstractModule() {

            @Override
            protected void configure() {
                ThrowingProviderBinder.create(binder()).bind(RemoteProvider.class, Foo.class).providing(WrongExceptionFoo.class);
            }
        });
        fail();
    } catch (CreationException ce) {
        assertEquals(InterruptedException.class.getName() + " is not compatible with the exceptions ([" + RemoteException.class + ", " + BindException.class + "]) declared in the CheckedProvider interface (" + RemoteProvider.class.getName() + ")", Iterables.getOnlyElement(ce.getErrorMessages()).getMessage());
    }
}
Also used : BindException(java.net.BindException) CreationException(com.google.inject.CreationException) RemoteException(java.rmi.RemoteException) AbstractModule(com.google.inject.AbstractModule)

Example 48 with CreationException

use of com.google.inject.CreationException in project roboguice by roboguice.

the class BoundFieldModuleTest method testRawProviderCannotBeBound.

public void testRawProviderCannotBeBound() {
    final Integer testValue = 1024;
    Object instance = new Object() {

        @Bind
        private Provider anIntProvider = new Provider() {

            @Override
            public Object get() {
                return testValue;
            }
        };
    };
    BoundFieldModule module = BoundFieldModule.of(instance);
    try {
        Guice.createInjector(module);
        fail();
    } catch (CreationException e) {
        assertContains(e.getMessage(), "Non parameterized Provider fields must have an " + "explicit binding class via @Bind(to = Foo.class)");
    }
}
Also used : CreationException(com.google.inject.CreationException) Provider(com.google.inject.Provider)

Example 49 with CreationException

use of com.google.inject.CreationException in project guice by google.

the class MapBinderTest method testSourceLinesInMapBindings.

public void testSourceLinesInMapBindings() {
    try {
        Guice.createInjector(new AbstractModule() {

            @Override
            protected void configure() {
                MapBinder.newMapBinder(binder(), String.class, Integer.class).addBinding("one");
            }
        });
        fail();
    } catch (CreationException expected) {
        assertContains(expected.getMessage(), "1) No implementation for java.lang.Integer", "at " + getClass().getName());
    }
}
Also used : CreationException(com.google.inject.CreationException) AbstractModule(com.google.inject.AbstractModule)

Example 50 with CreationException

use of com.google.inject.CreationException in project guice by google.

the class MapBinderTest method testMapBinderMapForbidsNullKeys.

public void testMapBinderMapForbidsNullKeys() {
    try {
        Guice.createInjector(new AbstractModule() {

            @Override
            protected void configure() {
                MapBinder.newMapBinder(binder(), String.class, String.class).addBinding(null);
            }
        });
        fail();
    } catch (CreationException expected) {
    }
}
Also used : CreationException(com.google.inject.CreationException) AbstractModule(com.google.inject.AbstractModule)

Aggregations

CreationException (com.google.inject.CreationException)169 AbstractModule (com.google.inject.AbstractModule)163 Module (com.google.inject.Module)26 RemoteException (java.rmi.RemoteException)18 BindException (java.net.BindException)12 IOException (java.io.IOException)9 List (java.util.List)8 ImmutableList (com.google.common.collect.ImmutableList)7 PrivateModule (com.google.inject.PrivateModule)7 TooManyListenersException (java.util.TooManyListenersException)6 Provider (com.google.inject.Provider)5 Message (com.google.inject.spi.Message)5 ArrayList (java.util.ArrayList)5 Injector (com.google.inject.Injector)4 Provides (com.google.inject.Provides)4 AccessException (java.rmi.AccessException)4 Key (com.google.inject.Key)3 TypeLiteral (com.google.inject.TypeLiteral)3 JCommander (com.beust.jcommander.JCommander)2 Console (com.beust.jcommander.internal.Console)2