47 lines
1.4 KiB
Java
47 lines
1.4 KiB
Java
package com.baeldung.extensions;
|
|
|
|
import java.sql.Connection;
|
|
import java.sql.SQLException;
|
|
import java.sql.Savepoint;
|
|
|
|
import org.junit.jupiter.api.extension.AfterAllCallback;
|
|
import org.junit.jupiter.api.extension.AfterEachCallback;
|
|
import org.junit.jupiter.api.extension.BeforeAllCallback;
|
|
import org.junit.jupiter.api.extension.BeforeEachCallback;
|
|
import org.junit.jupiter.api.extension.ExtensionContext;
|
|
|
|
import com.baeldung.helpers.EmployeeJdbcDao;
|
|
import com.baeldung.helpers.JdbcConnectionUtil;
|
|
|
|
public class EmployeeDatabaseSetupExtension implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback {
|
|
|
|
private Connection con = JdbcConnectionUtil.getConnection();
|
|
private EmployeeJdbcDao employeeDao = new EmployeeJdbcDao(con);
|
|
private Savepoint savepoint;
|
|
|
|
@Override
|
|
public void afterAll(ExtensionContext context) throws SQLException {
|
|
if (con != null) {
|
|
con.close();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void beforeAll(ExtensionContext context) throws SQLException {
|
|
employeeDao.createTable();
|
|
|
|
}
|
|
|
|
@Override
|
|
public void afterEach(ExtensionContext context) throws SQLException {
|
|
con.rollback(savepoint);
|
|
}
|
|
|
|
@Override
|
|
public void beforeEach(ExtensionContext context) throws SQLException {
|
|
con.setAutoCommit(false);
|
|
savepoint = con.setSavepoint("before");
|
|
}
|
|
|
|
}
|