Configure Embedded HSQL DataSource
package com.cloudbootstrap.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType; import javax.annotation.PostConstruct; import javax.sql.DataSource; /** * The data source config that can be used in integration tests. */ @Configuration @Profile("test") public class EmbeddedDataSourceConfig implements DataSourceConfig { @Override @Bean public DataSource dataSource() { return new EmbeddedDatabaseBuilder() .setType(EmbeddedDatabaseType.HSQL) .build(); } }
Test WebAppConfiguration with Embedded DataSource
package com.cloudbootstrap.config; import org.junit.Before; import org.junit.runner.RunWith; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.web.WebAppConfiguration; import org.springframework.test.web.servlet.MockMvc; import org.springframework.web.context.WebApplicationContext; import javax.inject.Inject; import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup; @RunWith(SpringJUnit4ClassRunner.class) @ActiveProfiles("test") @WebAppConfiguration @ContextConfiguration(classes = {ApplicationConfig.class, EmbeddedDataSourceConfig.class, JpaConfig.class, SecurityConfig.class, WebMvcConfig.class}) public abstract class WebAppConfigurationAware { @Inject protected WebApplicationContext wac; protected MockMvc mockMvc; @Before public void before() { this.mockMvc = webAppContextSetup(this.wac).build(); } }