diff --git a/src/test/java/org/tests/inheritance/TestInheritanceQuery.java b/src/test/java/org/tests/inheritance/TestInheritanceQuery.java index 57b8db445..25053cf57 100644 --- a/src/test/java/org/tests/inheritance/TestInheritanceQuery.java +++ b/src/test/java/org/tests/inheritance/TestInheritanceQuery.java @@ -1,19 +1,23 @@ package org.tests.inheritance; -import static org.assertj.core.api.Assertions.assertThat; -import org.tests.inherit.ChildA; -import org.tests.inherit.ChildB; -import org.tests.inherit.Parent; -import org.junit.Test; - import io.ebean.BaseTestCase; import io.ebean.Ebean; import io.ebean.Query; +import org.ebeantest.LoggedSqlCollector; +import org.junit.Test; +import org.tests.inherit.ChildA; +import org.tests.inherit.ChildB; +import org.tests.inherit.Parent; + +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; public class TestInheritanceQuery extends BaseTestCase { @Test public void test() { + Parent a = new ChildA(90, "Bean A"); Parent b1 = new ChildB(91, "Bean B1"); Parent b2 = new ChildB(92, "Bean B2"); @@ -22,16 +26,18 @@ public class TestInheritanceQuery extends BaseTestCase { server().save(b1); server().save(b2); + + LoggedSqlCollector.start(); + Query query = Ebean.find(Parent.class); - query.where().in("val",90, 91); // restrict to a & b1 + query.where().in("val", 90, 91); // restrict to a & b1 assertThat(query.findList()).hasSize(2); // a & b1 Query query2 = query.copy(); query2.setInheritType(ChildA.class); - assertThat(query.findList()).hasSize(2); assertThat(query2.findList()).containsExactly(a); query2.setInheritType(ChildB.class); @@ -40,6 +46,12 @@ public class TestInheritanceQuery extends BaseTestCase { query2 = Ebean.find(Parent.class).setInheritType(ChildB.class); assertThat(query2.findList()).contains(b1, b2); + List sql = LoggedSqlCollector.stop(); + assertThat(sql).hasSize(4); + assertThat(sql.get(1)).contains("where t0.type = 'A'"); + assertThat(sql.get(2)).contains("where t0.type = 'B'"); + assertThat(sql.get(3)).contains("where t0.type = 'B'"); + Ebean.delete(a); Ebean.delete(b1); Ebean.delete(b2);