#1689 - ENH: Add query usingTransaction() and usingConnection()

This commit is contained in:
rob bygrave
2019-04-30 20:13:12 +12:00
parent f94c3e81e5
commit 856a3a6fdd
9 changed files with 200 additions and 78 deletions
@@ -0,0 +1,63 @@
package org.tests.basic;
import io.ebean.BaseTestCase;
import io.ebean.DB;
import io.ebean.Transaction;
import org.junit.Test;
import org.tests.model.basic.Country;
import org.tests.model.basic.ResetBasicData;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
import static org.assertj.core.api.Assertions.assertThat;
public class TestQueryUsingConnection extends BaseTestCase {
@Test
public void usingConnection() throws SQLException {
ResetBasicData.reset();
DataSource dataSource = DB.getDefault().getPluginApi().getDataSource();
try (Connection connection = dataSource.getConnection()) {
int count = DB.find(Country.class)
.usingConnection(connection)
.findCount();
assertThat(count).isGreaterThan(0);
}
}
@Test
public void usingTransaction() {
ResetBasicData.reset();
try (Transaction transaction = DB.getDefault().createTransaction()) {
Transaction current = Transaction.current();
assertThat(current).isNull();
Country x = new Country();
x.setCode("xx");
x.setName("WillRollThisBack");
DB.getDefault().insert(x, transaction);
final int count = DB.find(Country.class)
.usingTransaction(transaction)
.findCount();
final int otherCount = DB.find(Country.class).findCount();
transaction.rollback();
assertThat(count).isEqualTo(otherCount + 1);
}
}
}