java-tutorials/junit5/src/test/java/com/baeldung/extensions/EmployeeDatabaseSetupExtension.java

47 lines
1.4 KiB
Java
Raw Normal View History

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");
}
}