package de.ppi.samples.fuwesta.dbunit; import java.sql.SQLException; import javax.annotation.Resource; import javax.sql.DataSource; import org.dbunit.dataset.IDataSet; import org.junit.AfterClass; import org.junit.Rule; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests; import de.ppi.samples.fuwesta.FuWeStaServer; /** * Class AbstractDbUnitTest. * */ @SpringBootTest(classes = FuWeStaServer.class, webEnvironment = WebEnvironment.RANDOM_PORT) public abstract class AbstractFuWeStaSampleDbUnitTest extends AbstractJUnit4SpringContextTests { /** * The datasource. */ @Resource private DataSource dataSource; /** * DB-Schema. */ @Value("${spring.datasource.schema}") private String schema; /** * The specific database-information. */ private FuWeStaSampleDatabase fuWeStaSampleDatabase; /** * @param dataSet the Dataset. * @see de.ppi.samples.fuwesta.dbunit. * FuWeStaSampleDatabase#cleanlyInsert(org.dbunit.dataset.IDataSet) */ public void cleanlyInsert(IDataSet dataSet) { fuWeStaSampleDatabase.cleanlyInsert(dataSet); } /** * * @param expected the expected data. * @see de.ppi.samples.fuwesta.dbunit. * FuWeStaSampleDatabase#checkResult(org.dbunit.dataset.IDataSet) */ public void checkResult(IDataSet expected) { fuWeStaSampleDatabase.checkResult(expected); } /** * Return the database-class. * * @return the database-class. */ @Rule public FuWeStaSampleDatabase getFuWeStaSampleDatabase() { if (fuWeStaSampleDatabase == null) { try { fuWeStaSampleDatabase = new FuWeStaSampleDatabase(dataSource.getConnection(), schema); } catch (SQLException e) { throw new IllegalArgumentException( "dataSource has not a valid connection", e); } } return fuWeStaSampleDatabase; } /** * Destroy the database. */ @AfterClass public static void closeDB() { FuWeStaSampleDatabase.destroyDatabase(); } }