package org.tests.query;
import io.ebean.BaseTestCase;
import io.ebean.Ebean;
import io.ebean.Query;
import io.ebean.RawSql;
import io.ebean.RawSqlBuilder;
import org.tests.model.basic.Customer;
import org.tests.model.basic.ResetBasicData;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class TestIContains extends BaseTestCase {
@Test
public void testIContains() {
ResetBasicData.reset();
// case insensitive
Query<Customer> query = Ebean.find(Customer.class).where().icontains("name", "Rob").query();
query.findList();
String generatedSql = query.getGeneratedSql();
assertThat(generatedSql).contains("lower(t0.name)");
// case sensitive
query = Ebean.find(Customer.class).where().contains("name", "Rob").query();
query.findList();
generatedSql = query.getGeneratedSql();
assertThat(generatedSql).contains(" t0.name ");
Ebean.find(Customer.class).where().icontains("name", "Rob").findList();
Ebean.find(Customer.class).where().icontains("name", "Rob").findList();
Ebean.find(Customer.class).where().icontains("name", "Rob").findList();
String sql = "select id, status, name from o_customer where lower(name) like :name";
RawSql parse = RawSqlBuilder.parse(sql).create();
Ebean.find(Customer.class).setRawSql(parse).setParameter("name", "Jim").findList();
}
}