mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
#845 - Fix EQL parsing to support the 'inverse' form - e.g. where 'Rob' eq firstName (where the path is on the RHS rather than LHS)
This commit is contained in:
@@ -30,6 +30,47 @@ public class EqlParserTest extends BaseTestCase {
|
||||
assertThat(query.getGeneratedSql()).contains("where t0.name = ?");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void where_eq_reverse() throws Exception {
|
||||
|
||||
Query<Customer> query = parse("where 'Rob' eq name");
|
||||
query.findList();
|
||||
|
||||
assertThat(query.getGeneratedSql()).contains("where t0.name = ?");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void where_gt_reverse() throws Exception {
|
||||
|
||||
Query<Customer> query = parse("where 'Rob' > name");
|
||||
query.findList();
|
||||
assertThat(query.getGeneratedSql()).contains("where t0.name < ?");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void where_gte_reverse() throws Exception {
|
||||
|
||||
Query<Customer> query = parse("where 'Rob' >= name");
|
||||
query.findList();
|
||||
assertThat(query.getGeneratedSql()).contains("where t0.name <= ?");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void where_lt_reverse() throws Exception {
|
||||
|
||||
Query<Customer> query = parse("where 'Rob' < name");
|
||||
query.findList();
|
||||
assertThat(query.getGeneratedSql()).contains("where t0.name > ?");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void where_lte_reverse() throws Exception {
|
||||
|
||||
Query<Customer> query = parse("where 'Rob' <= name");
|
||||
query.findList();
|
||||
assertThat(query.getGeneratedSql()).contains("where t0.name >= ?");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void where_ieq() throws Exception {
|
||||
|
||||
@@ -39,6 +80,14 @@ public class EqlParserTest extends BaseTestCase {
|
||||
assertThat(query.getGeneratedSql()).contains("where lower(t0.name) =?");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void where_ieq_reverse() throws Exception {
|
||||
|
||||
Query<Customer> query = parse("where 'Rob' ieq name");
|
||||
query.findList();
|
||||
assertThat(query.getGeneratedSql()).contains("where lower(t0.name) =?");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void where_eq2() throws Exception {
|
||||
|
||||
@@ -58,9 +107,13 @@ public class EqlParserTest extends BaseTestCase {
|
||||
assertThat(query.getGeneratedSql()).contains("where t0.name = ?");
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
@Test
|
||||
public void where_namedParam_otherOrder() {
|
||||
parse("where :name < plannedEnd");
|
||||
Query<Customer> query = parse("where :nm < name");
|
||||
query.setParameter("nm", "Rob");
|
||||
query.findList();
|
||||
|
||||
assertThat(query.getGeneratedSql()).contains("where t0.name > ?");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user