package com.netflix.governator.guice.test; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.Target; import com.google.inject.Module; import com.netflix.governator.guice.test.mocks.MockHandler; /** * Creates a Governator-Guice Injector using the provided modules for use in testing. * * Example: * <pre> * {@literal @}RunWith(GovernatorJunit4ClassRunner.class) * {@literal @}ModulesForTesting({ SomeTestModule.class }) * public class MyTestCase { * * {@literal @}Inject * SomeDependency someDependency; * * {@literal @}Test * public void test() { * assertNotNull(someDependency); * } * } * * public class SomeTestModule extends AbstractModule { * * {@literal @}Override * protected void configure() { * * bind(SomeDependency.class); * } * * } * } * </pre> */ @Documented @Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) public @interface ModulesForTesting { Class<? extends Module>[] value() default {}; InjectorCreationMode injectorCreation() default InjectorCreationMode.BEFORE_TEST_CLASS; Class<? extends MockHandler> mockHandler() default MockHandler.class; }