mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
#2847 - Add support for Sub-query EQ, NE, LT, LE, GT, GE expressions
This commit is contained in:
+5
-5
@@ -35,7 +35,7 @@ public class DefaultExpressionFactoryTest {
|
||||
public void testEq() {
|
||||
|
||||
DefaultExpressionFactory factory = new DefaultExpressionFactory(false, false);
|
||||
Expression expression = factory.eq("name", null);
|
||||
Expression expression = factory.eq("name", (String)null);
|
||||
assertThat(expression).isInstanceOf(NullExpression.class);
|
||||
assertThat(toQueryPlanHash(expression)).isEqualTo("Null[name]");
|
||||
}
|
||||
@@ -44,7 +44,7 @@ public class DefaultExpressionFactoryTest {
|
||||
public void testNe() {
|
||||
|
||||
DefaultExpressionFactory factory = new DefaultExpressionFactory(false, false);
|
||||
Expression expression = factory.ne("name", null);
|
||||
Expression expression = factory.ne("name", (String)null);
|
||||
assertThat(expression).isInstanceOf(NullExpression.class);
|
||||
assertThat(toQueryPlanHash(expression)).isEqualTo("NotNull[name]");
|
||||
}
|
||||
@@ -71,7 +71,7 @@ public class DefaultExpressionFactoryTest {
|
||||
public void testEq_with_equalsWithNullAsNoop() {
|
||||
|
||||
DefaultExpressionFactory factory = new DefaultExpressionFactory(true, false);
|
||||
Expression expression = factory.eq("name", null);
|
||||
Expression expression = factory.eq("name", (String)null);
|
||||
assertThat(expression).isInstanceOf(NoopExpression.class);
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ public class DefaultExpressionFactoryTest {
|
||||
public void testNe_with_equalsWithNullAsNoop() {
|
||||
|
||||
DefaultExpressionFactory factory = new DefaultExpressionFactory(true, false);
|
||||
Expression expression = factory.ne("name", null);
|
||||
Expression expression = factory.ne("name", (String)null);
|
||||
assertThat(expression).isInstanceOf(NoopExpression.class);
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ public class DefaultExpressionFactoryTest {
|
||||
public void testIeq_with_equalsWithNullAsNoop() {
|
||||
|
||||
DefaultExpressionFactory factory = new DefaultExpressionFactory(true, false);
|
||||
Expression expression = factory.ieq("name", null);
|
||||
Expression expression = factory.ieq("name", (String)null);
|
||||
assertThat(expression).isInstanceOf(NoopExpression.class);
|
||||
}
|
||||
}
|
||||
|
||||
+4
-3
@@ -12,14 +12,15 @@ import static org.mockito.Mockito.verify;
|
||||
|
||||
public class InQueryExpressionTest extends BaseExpressionTest {
|
||||
|
||||
private InQueryExpression exp(String propertyName, boolean not, String sql, Object... bindValues) {
|
||||
return new InQueryExpression(propertyName, not, sql, Arrays.asList(bindValues));
|
||||
private SubQueryExpression exp(String propertyName, boolean not, String sql, Object... bindValues) {
|
||||
var op = not ? SubQueryExpression.SQOp.NOTIN : SubQueryExpression.SQOp.IN;
|
||||
return new SubQueryExpression(op, propertyName, sql, Arrays.asList(bindValues));
|
||||
}
|
||||
|
||||
@Test
|
||||
void copy_subQuery_expectNewInstance() {
|
||||
SpiQuery<?> subQuery = mock(SpiQuery.class);
|
||||
var orig = new InQueryExpression("name", subQuery, false);
|
||||
var orig = new SubQueryExpression(SubQueryExpression.SQOp.IN, "name", subQuery);
|
||||
SpiExpression copy = orig.copy();
|
||||
assertThat(copy).isNotSameAs(orig);
|
||||
verify(subQuery).copy();
|
||||
|
||||
@@ -27,9 +27,9 @@ public class NoopExpressionTest extends BaseExpressionTest {
|
||||
initTables();
|
||||
Query<Customer> query = DB.find(Customer.class)
|
||||
.select("id")
|
||||
.where().eq("name", null)
|
||||
.where().eq("name", (String) null)
|
||||
.add(NoopExpression.INSTANCE)
|
||||
.ne("status", null)
|
||||
.ne("status", (String) null)
|
||||
.query();
|
||||
|
||||
query.findList();
|
||||
|
||||
Reference in New Issue
Block a user