package org.jdbi.v3.testing;
import java.util.function.Consumer;
import javax.sql.DataSource;
import com.opentable.db.postgres.embedded.EmbeddedPostgres;
import com.opentable.db.postgres.junit.EmbeddedPostgresRules;
import com.opentable.db.postgres.junit.SingleInstancePostgresRule;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
class EmbeddedPostgresJdbiRule extends JdbiRule {
private final SingleInstancePostgresRule embeddedPg;
EmbeddedPostgresJdbiRule() {
embeddedPg = EmbeddedPostgresRules.singleInstance();
}
EmbeddedPostgresJdbiRule(Consumer<EmbeddedPostgres.Builder> customizer) {
embeddedPg = EmbeddedPostgresRules.singleInstance().customize(customizer);
}
@Override
public Statement apply(Statement base, Description description) {
return embeddedPg.apply(super.apply(base, description), description);
}
@Override
protected DataSource createDataSource() {
return embeddedPg.getEmbeddedPostgres().getPostgresDatabase();
}
}