package fil.iagl.iir;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.apache.ibatis.jdbc.ScriptRunner;
import org.junit.Before;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = FeedMeConfiguration.class)
@WebAppConfiguration
@ActiveProfiles("test")
public abstract class AbstractFeedMeTest {
private static Boolean hasBeenReset = Boolean.FALSE;
@Autowired
private DataSource dataSource;
@Before
public void setUp() {
if (!hasBeenReset) {
Resource r = new ClassPathResource("test_script.sql");
ScriptRunner runner = null;
try {
File reset = r.getFile();
runner = new ScriptRunner(dataSource.getConnection());
runner.runScript(new FileReader(reset));
} catch (IOException | SQLException e) {
throw new RuntimeException(e);
} finally {
runner.closeConnection();
hasBeenReset = Boolean.TRUE;
}
}
}
}