mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
#919 - io.ebean package initial
This commit is contained in:
@@ -0,0 +1,134 @@
|
||||
package org.tests.query.sqlquery;
|
||||
|
||||
import io.ebean.BaseTestCase;
|
||||
import io.ebean.Ebean;
|
||||
import io.ebean.SqlQuery;
|
||||
import io.ebean.SqlRow;
|
||||
import org.tests.model.basic.Order;
|
||||
import org.tests.model.basic.ResetBasicData;
|
||||
import org.avaje.ebeantest.LoggedSqlCollector;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
public class SqlQueryTests extends BaseTestCase {
|
||||
|
||||
@Test
|
||||
public void firstRowMaxRows() {
|
||||
|
||||
ResetBasicData.reset();
|
||||
|
||||
SqlQuery sqlQuery = Ebean.createSqlQuery("Select * from o_order");
|
||||
sqlQuery.setFirstRow(3);
|
||||
sqlQuery.setMaxRows(10);
|
||||
|
||||
LoggedSqlCollector.start();
|
||||
List<SqlRow> list = sqlQuery.findList();
|
||||
|
||||
List<String> sql = LoggedSqlCollector.stop();
|
||||
|
||||
assertThat(sql.get(0)).contains("Select * from o_order limit 10 offset 3; --bind()");
|
||||
assertThat(list).isNotEmpty();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void firstRow() {
|
||||
|
||||
if (isPostgres()) {
|
||||
|
||||
ResetBasicData.reset();
|
||||
|
||||
SqlQuery sqlQuery = Ebean.createSqlQuery("Select * from o_order order by id");
|
||||
sqlQuery.setFirstRow(3);
|
||||
|
||||
LoggedSqlCollector.start();
|
||||
sqlQuery.findList();
|
||||
List<String> sql = LoggedSqlCollector.stop();
|
||||
|
||||
assertThat(sql.get(0)).contains("Select * from o_order order by id offset 3");
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void maxRows() {
|
||||
|
||||
ResetBasicData.reset();
|
||||
|
||||
SqlQuery sqlQuery = Ebean.createSqlQuery("Select * from o_order order by id");
|
||||
sqlQuery.setMaxRows(10);
|
||||
|
||||
LoggedSqlCollector.start();
|
||||
sqlQuery.findList();
|
||||
List<String> sql = LoggedSqlCollector.stop();
|
||||
|
||||
assertThat(sql.get(0)).contains("Select * from o_order order by id limit 10");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void maxRows_withParam() {
|
||||
|
||||
ResetBasicData.reset();
|
||||
|
||||
SqlQuery sqlQuery = Ebean.createSqlQuery("select * from o_order where o_order.id > :id order by id ");
|
||||
sqlQuery.setParameter("id", 3);
|
||||
sqlQuery.setMaxRows(10);
|
||||
|
||||
LoggedSqlCollector.start();
|
||||
sqlQuery.findList();
|
||||
List<String> sql = LoggedSqlCollector.stop();
|
||||
|
||||
assertThat(sql.get(0)).contains("select * from o_order where o_order.id > ? order by id limit 10;");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findEachMaxRows() {
|
||||
|
||||
ResetBasicData.reset();
|
||||
|
||||
SqlQuery sqlQuery = Ebean.createSqlQuery("Select * from o_order");
|
||||
sqlQuery.setMaxRows(10);
|
||||
|
||||
LoggedSqlCollector.start();
|
||||
sqlQuery.findEach(bean -> bean.get("id"));
|
||||
List<String> sql = LoggedSqlCollector.stop();
|
||||
|
||||
assertThat(sql.get(0)).contains("limit 10");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findEach() {
|
||||
|
||||
ResetBasicData.reset();
|
||||
|
||||
int expectedRows = Ebean.find(Order.class).findCount();
|
||||
|
||||
final AtomicInteger count = new AtomicInteger();
|
||||
|
||||
SqlQuery sqlQuery = Ebean.createSqlQuery("select * from o_order");
|
||||
sqlQuery.findEach(bean -> count.incrementAndGet());
|
||||
|
||||
assertEquals(expectedRows, count.get());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findEachWhile() {
|
||||
|
||||
ResetBasicData.reset();
|
||||
|
||||
final AtomicInteger count = new AtomicInteger();
|
||||
|
||||
SqlQuery sqlQuery = Ebean.createSqlQuery("select * from o_order order by id");
|
||||
sqlQuery.findEachWhile(bean -> {
|
||||
count.incrementAndGet();
|
||||
Integer id = bean.getInteger("id");
|
||||
return id < 3;
|
||||
});
|
||||
|
||||
assertEquals(3, count.get());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package org.tests.query.sqlquery;
|
||||
|
||||
import io.ebean.BaseTestCase;
|
||||
import io.ebean.Ebean;
|
||||
import io.ebean.Query;
|
||||
import io.ebean.Platform;
|
||||
import io.ebean.plugin.SpiServer;
|
||||
import org.tests.model.basic.Customer;
|
||||
import org.tests.model.basic.ResetBasicData;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
public class TestNativeILikeExpression extends BaseTestCase {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
|
||||
boolean expectNative = isExpectNative();
|
||||
|
||||
ResetBasicData.reset();
|
||||
|
||||
Query<Customer> query = Ebean.find(Customer.class)
|
||||
.where().ilike("name", "rob")
|
||||
.query();
|
||||
|
||||
List<Customer> list = query.findList();
|
||||
|
||||
if (expectNative) {
|
||||
assertThat(query.getGeneratedSql()).contains(" from o_customer t0 where t0.name ilike ?");
|
||||
assertThat(list).isNotEmpty();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isExpectNative() {
|
||||
|
||||
SpiServer pluginApi = server().getPluginApi();
|
||||
boolean expressionNativeIlike = pluginApi.getServerConfig().isExpressionNativeIlike();
|
||||
Platform platform = pluginApi.getDatabasePlatform().getPlatform();
|
||||
|
||||
return expressionNativeIlike && platform == Platform.POSTGRES;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user