From fb2488e3b89646a739b7ff5a8008d8e978c733f1 Mon Sep 17 00:00:00 2001 From: Victor Jimenez Kwast Date: Fri, 20 May 2016 00:21:33 +0200 Subject: [PATCH] Added tests for query isNull expressions --- .../avaje/tests/query/TestQueryIsNull.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/test/java/com/avaje/tests/query/TestQueryIsNull.java diff --git a/src/test/java/com/avaje/tests/query/TestQueryIsNull.java b/src/test/java/com/avaje/tests/query/TestQueryIsNull.java new file mode 100644 index 000000000..5998df113 --- /dev/null +++ b/src/test/java/com/avaje/tests/query/TestQueryIsNull.java @@ -0,0 +1,58 @@ +package com.avaje.tests.query; + +import com.avaje.ebean.BaseTestCase; +import com.avaje.ebean.Ebean; +import com.avaje.ebean.Query; +import com.avaje.tests.model.basic.Order; +import com.avaje.tests.model.basic.ResetBasicData; +import com.avaje.tests.model.m2m.Role; +import org.junit.Assert; +import org.junit.Test; + +public class TestQueryIsNull extends BaseTestCase { + + + @Test + public void queryShouldContainIsNullOnColumn() { + ResetBasicData.reset(); + + Query query = Ebean.find(Order.class).where().isNull("customerName").query(); + query.findList(); + + Assert.assertTrue(query.getGeneratedSql().contains("name is null")); + } + + @Test + public void queryShouldLeftJoinForOneToManyInDisjunction() { + ResetBasicData.reset(); + + Query query = Ebean.find(Order.class).where().disjunction().isNull("details").endJunction().query(); + query.findList(); + + Assert.assertTrue(query.getGeneratedSql().contains("left outer join")); + Assert.assertTrue(query.getGeneratedSql().contains("is null")); + } + + @Test + public void queryShouldLeftJoinForOneToManyRelation() { + ResetBasicData.reset(); + + Query query = Ebean.find(Order.class).where().isNull("details").query(); + query.findList(); + + Assert.assertTrue(query.getGeneratedSql().contains("left outer join")); + Assert.assertTrue(query.getGeneratedSql().contains("is null")); + + } + + @Test + public void queryShouldLeftJoinForManyToManyRelation() { + ResetBasicData.reset(); + + Query query = Ebean.find(Role.class).where().isNull("permissions").query(); + query.findList(); + + Assert.assertTrue(query.getGeneratedSql().contains("left outer join")); + Assert.assertTrue(query.getGeneratedSql().contains("is null")); + } +}