package org.transgalactica.management.rest; import org.junit.Before; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.ContextHierarchy; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.transaction.TransactionConfiguration; import org.springframework.test.context.web.WebAppConfiguration; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.context.WebApplicationContext; import org.transgalactica.management.rest.context.AppConfig; import org.transgalactica.management.rest.context.mvc.WebMvcConfig; @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration @ContextHierarchy({ @ContextConfiguration(name = "test", classes = TestConfig.class), @ContextConfiguration(name = "root", classes = AppConfig.class), @ContextConfiguration(name = "mvc", classes = WebMvcConfig.class) }) @TransactionConfiguration @Transactional @ActiveProfiles("test") public abstract class AbstractWebTest { @Autowired private WebApplicationContext wac; protected MockMvc mockMvc; @Before public void setup() { this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build(); } }