package junit4.tutorial_0_basic;
import static org.junit.Assert.assertEquals;
import com.google.guiceberry.GuiceBerryModule;
import com.google.guiceberry.junit4.GuiceBerryRule;
import com.google.inject.AbstractModule;
import com.google.inject.BindingAnnotation;
import com.google.inject.Inject;
import org.junit.Rule;
import org.junit.Test;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
public class Example1GetsInjectedTest {
@Rule
public final GuiceBerryRule guiceBerry = new GuiceBerryRule(Env.class);
@Inject
@NumberOneHundred
private int number;
@Test
public void testHello() throws Exception {
assertEquals(100, number);
}
public static final class Env extends AbstractModule {
@Override
protected void configure() {
install(new GuiceBerryModule());
bind(Integer.class).annotatedWith(NumberOneHundred.class).toInstance(100);
}
}
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER})
@BindingAnnotation
private @interface NumberOneHundred {}
}