Search in sources :

Example 96 with CreationException

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

the class ProvidesIntoTest method testProvidesIntoSetWithMapKey.

public void testProvidesIntoSetWithMapKey() {
    Module m = new AbstractModule() {

        @Override
        protected void configure() {
        }

        @ProvidesIntoSet
        @TestEnumKey(TestEnum.A)
        String provideFoo() {
            return "foo";
        }
    };
    try {
        Guice.createInjector(MultibindingsScanner.asModule(), m);
        fail();
    } catch (CreationException ce) {
        assertEquals(1, ce.getErrorMessages().size());
        assertContains(ce.getMessage(), "Found a MapKey annotation on non map binding at " + m.getClass().getName() + ".provideFoo");
    }
}
Also used : CreationException(com.google.inject.CreationException) Module(com.google.inject.Module) AbstractModule(com.google.inject.AbstractModule) AbstractModule(com.google.inject.AbstractModule)

Example 97 with CreationException

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

the class ProvidesIntoTest method testProvidesIntoOptionalWithMapKey.

public void testProvidesIntoOptionalWithMapKey() {
    Module m = new AbstractModule() {

        @Override
        protected void configure() {
        }

        @ProvidesIntoOptional(Type.ACTUAL)
        @TestEnumKey(TestEnum.A)
        String provideFoo() {
            return "foo";
        }
    };
    try {
        Guice.createInjector(MultibindingsScanner.asModule(), m);
        fail();
    } catch (CreationException ce) {
        assertEquals(1, ce.getErrorMessages().size());
        assertContains(ce.getMessage(), "Found a MapKey annotation on non map binding at " + m.getClass().getName() + ".provideFoo");
    }
}
Also used : CreationException(com.google.inject.CreationException) Module(com.google.inject.Module) AbstractModule(com.google.inject.AbstractModule) AbstractModule(com.google.inject.AbstractModule)

Example 98 with CreationException

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

the class ProvidesIntoTest method testArrayKeys_unwrapValuesTrue.

public void testArrayKeys_unwrapValuesTrue() {
    Module m = new AbstractModule() {

        @Override
        protected void configure() {
        }

        @ProvidesIntoMap
        @ArrayUnwrappedKey({ 1, 2 })
        String provideFoo() {
            return "foo";
        }
    };
    try {
        Guice.createInjector(MultibindingsScanner.asModule(), m);
        fail();
    } catch (CreationException ce) {
        assertEquals(1, ce.getErrorMessages().size());
        assertContains(ce.getMessage(), "Array types are not allowed in a MapKey with unwrapValue=true: " + ArrayUnwrappedKey.class.getName(), "at " + m.getClass().getName() + ".provideFoo(");
    }
}
Also used : CreationException(com.google.inject.CreationException) Module(com.google.inject.Module) AbstractModule(com.google.inject.AbstractModule) AbstractModule(com.google.inject.AbstractModule)

Example 99 with CreationException

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

the class ProvidesIntoTest method testProvidesIntoMapWithoutMapKey.

public void testProvidesIntoMapWithoutMapKey() {
    Module m = new AbstractModule() {

        @Override
        protected void configure() {
        }

        @ProvidesIntoMap
        String provideFoo() {
            return "foo";
        }
    };
    try {
        Guice.createInjector(MultibindingsScanner.asModule(), m);
        fail();
    } catch (CreationException ce) {
        assertEquals(1, ce.getErrorMessages().size());
        assertContains(ce.getMessage(), "No MapKey found for map binding at " + m.getClass().getName() + ".provideFoo");
    }
}
Also used : CreationException(com.google.inject.CreationException) Module(com.google.inject.Module) AbstractModule(com.google.inject.AbstractModule) AbstractModule(com.google.inject.AbstractModule)

Example 100 with CreationException

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

the class ModuleAnnotatedMethodScannerTest method testMoreThanOneClaimedAnnotationFails.

public void testMoreThanOneClaimedAnnotationFails() throws Exception {
    Module module = new AbstractModule() {

        @Override
        protected void configure() {
        }

        @TestProvides
        @TestProvides2
        String foo() {
            return "foo";
        }
    };
    try {
        Guice.createInjector(module, NamedMunger.module());
        fail();
    } catch (CreationException expected) {
        assertEquals(1, expected.getErrorMessages().size());
        assertContains(expected.getMessage(), "More than one annotation claimed by NamedMunger on method " + module.getClass().getName() + ".foo(). Methods can only have " + "one annotation claimed per scanner.");
    }
}
Also used : CreationException(com.google.inject.CreationException) Module(com.google.inject.Module) PrivateModule(com.google.inject.PrivateModule) AbstractModule(com.google.inject.AbstractModule) 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