package org.tests.query;
import io.ebean.BaseTestCase;
import io.ebean.Ebean;
import io.ebean.Query;
import org.tests.model.basic.Customer;
import org.junit.Assert;
import org.junit.Test;
public class TestConnectionCloseOnSqlerr extends BaseTestCase {
static boolean runManuallyNow = true;
@Test
public void test() {
if (runManuallyNow) {
return;
}
try {
for (int i = 0; i < 100; i++) {
try {
Query<Customer> q0 = Ebean.find(Customer.class).where().icontains("namexxx", "Rob")
.query();
q0.findList();
} catch (Exception e) {
if (e.getMessage().contains("Unsuccessfully waited")) {
Assert.fail("No connections found while only one thread is running. (after " + i + " queries)");
} else {
e.printStackTrace();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void testTransactional() {
if (runManuallyNow) {
return;
}
try {
for (int i = 0; i < 100; i++) {
try {
Ebean.beginTransaction();
Query<Customer> q0 = Ebean.find(Customer.class).where().icontains("namexxx", "Rob")
.query();
q0.findList();
Ebean.commitTransaction();
} catch (Exception e) {
if (e.getMessage().contains("Unsuccessfully waited")) {
Assert.fail("No connections found while only one thread is running. (after " + i + " queries)");
} else {
e.printStackTrace();
}
} finally {
if (Ebean.currentTransaction().isActive()) {
Ebean.rollbackTransaction();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}