package com.netflix.governator.guice.test.junit4; import static org.junit.Assert.*; import javax.inject.Inject; import javax.inject.Singleton; import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; import org.junit.runners.MethodSorters; import com.netflix.governator.guice.test.ModulesForTesting; import com.netflix.governator.guice.test.InjectorCreationMode; @RunWith(Enclosed.class) public class GovernatorJunit4ClassRunnerCreationModeTest { @RunWith(GovernatorJunit4ClassRunner.class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) @ModulesForTesting() public static class ClassLevelTest { @Inject StatefulTestBinding stateful; @Test public void test1() { assertEquals(null, stateful.getState()); stateful.setState("foo"); } @Test public void test2() { assertEquals("foo", stateful.getState()); stateful.setState("foo"); } } @RunWith(GovernatorJunit4ClassRunner.class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) @ModulesForTesting(injectorCreation=InjectorCreationMode.BEFORE_EACH_TEST_METHOD) public static class MethodLevelTest { @Inject StatefulTestBinding stateful; @Test public void test1() { assertNull(stateful.getState()); stateful.setState("foo"); } @Test public void test2() { assertNull(stateful.getState()); } } } @Singleton class StatefulTestBinding { private String state; public String getState() { return this.state; } public void setState(String state) { this.state = state; } }