diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/AllEqualsExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/AllEqualsExpressionTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/AllEqualsExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/AllEqualsExpressionTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/BaseExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/BaseExpressionTest.java similarity index 95% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/BaseExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/BaseExpressionTest.java index 4f8bed0c7..b66c1da62 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/expression/BaseExpressionTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/expression/BaseExpressionTest.java @@ -1,18 +1,18 @@ package io.ebeaninternal.server.expression; -import io.ebean.xtest.BaseTestCase; import io.ebean.EbeanServer; import io.ebean.Query; import io.ebean.Transaction; import io.ebean.event.BeanQueryRequest; import io.ebeaninternal.api.SpiExpression; +import io.ebeaninternal.server.deploy.BaseTest; import io.ebeaninternal.server.deploy.BeanDescriptor; import org.tests.model.basic.Customer; import org.tests.model.basic.Order; import static org.assertj.core.api.Assertions.assertThat; -public abstract class BaseExpressionTest extends BaseTestCase { +public abstract class BaseExpressionTest extends BaseTest { protected DefaultExpressionRequest newExpressionRequest() { BeanDescriptor desc = getBeanDescriptor(Order.class); diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/BetweenExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/BetweenExpressionTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/BetweenExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/BetweenExpressionTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/BetweenPropertyExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/BetweenPropertyExpressionTest.java similarity index 91% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/BetweenPropertyExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/BetweenPropertyExpressionTest.java index be487ca00..c1f4d3751 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/expression/BetweenPropertyExpressionTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/expression/BetweenPropertyExpressionTest.java @@ -1,5 +1,6 @@ package io.ebeaninternal.server.expression; +import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; @@ -14,7 +15,7 @@ public class BetweenPropertyExpressionTest extends BaseExpressionTest { public void sqlExpression() { TDSpiExpressionRequest request = new TDSpiExpressionRequest(null); exp("a", "b", 10).addSql(request); - assertThat(request.getSql()).isEqualTo(" ? between a and b"); + Assertions.assertThat(request.getSql()).isEqualTo(" ? between a and b"); } @Test diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/CaseInsensitiveEqualExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/CaseInsensitiveEqualExpressionTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/CaseInsensitiveEqualExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/CaseInsensitiveEqualExpressionTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/DefaultExampleExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/DefaultExampleExpressionTest.java similarity index 72% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/DefaultExampleExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/DefaultExampleExpressionTest.java index 452db7dbf..9c25ac2f9 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/expression/DefaultExampleExpressionTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/expression/DefaultExampleExpressionTest.java @@ -1,19 +1,16 @@ package io.ebeaninternal.server.expression; import io.ebean.LikeType; -import io.ebean.Query; import io.ebean.bean.EntityBean; import io.ebean.event.BeanQueryRequest; import io.ebeaninternal.api.ManyWhereJoins; import io.ebeaninternal.api.SpiQuery; import io.ebeaninternal.server.core.OrmQueryRequest; import io.ebeaninternal.server.deploy.BeanDescriptor; +import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.tests.model.basic.Address; import org.tests.model.basic.Customer; -import org.tests.model.basic.ResetBasicData; - -import static org.assertj.core.api.Assertions.assertThat; public class DefaultExampleExpressionTest extends BaseExpressionTest { @@ -72,43 +69,9 @@ public class DefaultExampleExpressionTest extends BaseExpressionTest { TDSpiExpressionRequest req = new TDSpiExpressionRequest(customerBeanDescriptor()); expr.addBindValues(req); - assertThat(req.bindValues).contains("name", "billingAddress.city"); - - Customer customer = customer(); - customer.setName("Rob"); - customer.getBillingAddress().setCity("Auckland"); - - ResetBasicData.reset(); - - Query query1 = server().find(Customer.class) - .where().exampleLike(customer) - .query(); - - query1.findList(); - - assertThat(query1.getGeneratedSql()).contains("(t0.name like "); - assertThat(query1.getGeneratedSql()).contains(" and t1.city like "); - + Assertions.assertThat(req.bindValues).contains("name", "billingAddress.city"); } - @Test - public void emptyExampleBean() { - - ResetBasicData.reset(); - - Customer customer = new Customer(); - - Query query = server().find(Customer.class) - .where() - .eq("status", Customer.Status.NEW) - .exampleLike(customer) - .startsWith("name", "Rob") - .query(); - - query.findList(); - - assertThat(sqlOf(query)).contains("and 1=1 and t0.name like"); - } private OrmQueryRequest create(SpiQuery query) { return new OrmQueryRequest<>(null, null, query, null); diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/DefaultExpressionFactoryTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/DefaultExpressionFactoryTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/DefaultExpressionFactoryTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/DefaultExpressionFactoryTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/DefaultExpressionListTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/DefaultExpressionListTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/DefaultExpressionListTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/DefaultExpressionListTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/ExistsQueryExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/ExistsQueryExpressionTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/ExistsQueryExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/ExistsQueryExpressionTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/IdExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/IdExpressionTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/IdExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/IdExpressionTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/IdInExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/IdInExpressionTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/IdInExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/IdInExpressionTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/InExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/InExpressionTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/InExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/InExpressionTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/InPairsExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/InPairsExpressionTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/InPairsExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/InPairsExpressionTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/InQueryExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/InQueryExpressionTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/InQueryExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/InQueryExpressionTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/InRangeExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/InRangeExpressionTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/InRangeExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/InRangeExpressionTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/JsonPathExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/JsonPathExpressionTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/JsonPathExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/JsonPathExpressionTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/JunctionExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/JunctionExpressionTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/JunctionExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/JunctionExpressionTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/LikeExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/LikeExpressionTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/LikeExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/LikeExpressionTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/LogicExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/LogicExpressionTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/LogicExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/LogicExpressionTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/NoopExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/NoopExpressionTest.java similarity index 73% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/NoopExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/NoopExpressionTest.java index 69bbbf6db..fd5548b1c 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/expression/NoopExpressionTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/expression/NoopExpressionTest.java @@ -2,50 +2,29 @@ package io.ebeaninternal.server.expression; import io.ebean.DB; import io.ebean.Query; -import io.ebean.test.LoggedSql; import org.junit.jupiter.api.Test; import org.tests.model.basic.Customer; -import org.tests.model.onetoone.album.Cover; - -import java.util.List; import static org.assertj.core.api.Assertions.assertThat; - public class NoopExpressionTest extends BaseExpressionTest { @Test public void test() { - + initTables(); Query query = DB.find(Customer.class) .select("id") .where().add(NoopExpression.INSTANCE) .query(); query.findList(); - String generatedSql = sqlOf(query); - + String generatedSql = query.getGeneratedSql(); assertThat(generatedSql).contains("select t0.id from o_customer t0 where 1=1"); } - @Test - public void test_withSoftDeleteBean() { - - Query query = DB.find(Cover.class) - .where().add(NoopExpression.INSTANCE) - .query(); - - LoggedSql.start(); - - query.findCount(); - - List sql = LoggedSql.stop(); - assertSql(sql.get(0)).contains("select count(*) from cover t0 where 1=1 and"); - } - @Test public void test_withPreAndPost() { - + initTables(); Query query = DB.find(Customer.class) .select("id") .where().eq("name", null) @@ -54,7 +33,7 @@ public class NoopExpressionTest extends BaseExpressionTest { .query(); query.findList(); - String generatedSql = sqlOf(query); + String generatedSql = query.getGeneratedSql(); assertThat(generatedSql).contains("select t0.id from o_customer t0 where t0.name is null and 1=1 and t0.status is not null"); } diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/NotExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/NotExpressionTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/NotExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/NotExpressionTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/NullExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/NullExpressionTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/NullExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/NullExpressionTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/PrepareDocNestedTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/PrepareDocNestedTest.java similarity index 97% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/PrepareDocNestedTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/PrepareDocNestedTest.java index 125c2ac21..c9be84436 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/expression/PrepareDocNestedTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/expression/PrepareDocNestedTest.java @@ -1,9 +1,9 @@ package io.ebeaninternal.server.expression; -import io.ebean.xtest.BaseTestCase; import io.ebean.DB; import io.ebean.ExpressionList; import io.ebeaninternal.api.SpiExpression; +import io.ebeaninternal.server.deploy.BaseTest; import org.junit.jupiter.api.Test; import org.tests.model.basic.Order; @@ -12,7 +12,7 @@ import java.util.List; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -public class PrepareDocNestedTest extends BaseTestCase { +public class PrepareDocNestedTest extends BaseTest { @Test public void prepare() throws Exception { diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/RawExpressionBuilderTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/RawExpressionBuilderTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/RawExpressionBuilderTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/RawExpressionBuilderTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/RawExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/RawExpressionTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/RawExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/RawExpressionTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/SameTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/SameTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/SameTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/SameTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/SimpleExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/SimpleExpressionTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/SimpleExpressionTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/SimpleExpressionTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/TDSpiExpressionRequest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/TDSpiExpressionRequest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/TDSpiExpressionRequest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/expression/TDSpiExpressionRequest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/querydefn/DefaultOrmQueryTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/querydefn/DefaultOrmQueryTest.java similarity index 89% rename from ebean-test/src/test/java/io/ebeaninternal/server/querydefn/DefaultOrmQueryTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/querydefn/DefaultOrmQueryTest.java index f4a6d421a..e7cacbbe5 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/querydefn/DefaultOrmQueryTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/querydefn/DefaultOrmQueryTest.java @@ -1,19 +1,21 @@ package io.ebeaninternal.server.querydefn; -import io.ebean.xtest.BaseTestCase; -import io.ebean.CacheMode; -import io.ebean.DB; +import io.ebean.*; import io.ebeaninternal.api.BindValuesKey; import io.ebeaninternal.api.SpiQuery; +import io.ebeaninternal.server.core.DefaultServer; import io.ebeaninternal.server.core.OrmQueryRequest; +import io.ebeaninternal.server.core.OrmQueryRequestTestHelper; +import io.ebeaninternal.server.deploy.BaseTest; +import io.ebeaninternal.server.expression.BaseExpressionTest; import org.junit.jupiter.api.Test; import org.tests.model.basic.Customer; import org.tests.model.basic.Order; import static org.assertj.core.api.Assertions.assertThat; -public class DefaultOrmQueryTest extends BaseTestCase { +public class DefaultOrmQueryTest extends BaseExpressionTest { @Test public void when_forUpdate_then_excludeFromBeanCache() { @@ -105,10 +107,10 @@ public class DefaultOrmQueryTest extends BaseTestCase { private void prepare(DefaultOrmQuery q1, DefaultOrmQuery q2) { - OrmQueryRequest r1 = createQueryRequest(SpiQuery.Type.LIST, q1, null); + OrmQueryRequest r1 = OrmQueryRequestTestHelper.queryRequest(q1); q1.prepare(r1); - OrmQueryRequest r2 = createQueryRequest(SpiQuery.Type.LIST, q2, null); + OrmQueryRequest r2 = OrmQueryRequestTestHelper.queryRequest(q2); q2.prepare(r2); } diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/querydefn/OrmQueryDetailTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/querydefn/OrmQueryDetailTest.java similarity index 98% rename from ebean-test/src/test/java/io/ebeaninternal/server/querydefn/OrmQueryDetailTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/querydefn/OrmQueryDetailTest.java index 31849f1e4..fcda26121 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/querydefn/OrmQueryDetailTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/querydefn/OrmQueryDetailTest.java @@ -1,6 +1,6 @@ package io.ebeaninternal.server.querydefn; -import io.ebean.xtest.BaseTestCase; +import io.ebeaninternal.server.deploy.BaseTest; import io.ebeaninternal.server.deploy.BeanDescriptor; import org.junit.jupiter.api.Test; import org.tests.model.basic.Order; @@ -8,7 +8,7 @@ import org.tests.model.basic.Order; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.*; -public class OrmQueryDetailTest extends BaseTestCase { +public class OrmQueryDetailTest extends BaseTest { OrmQueryDetail parse(String query) { return new OrmQueryDetailParser(query).parse(); diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/querydefn/OrmQueryPlanKeyTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/querydefn/OrmQueryPlanKeyTest.java similarity index 98% rename from ebean-test/src/test/java/io/ebeaninternal/server/querydefn/OrmQueryPlanKeyTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/querydefn/OrmQueryPlanKeyTest.java index e132f8320..6e181573b 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/querydefn/OrmQueryPlanKeyTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/querydefn/OrmQueryPlanKeyTest.java @@ -5,10 +5,10 @@ import io.ebean.ExpressionList; import io.ebean.Query; import io.ebeaninternal.api.CQueryPlanKey; import io.ebeaninternal.api.SpiQuery; +import io.ebeaninternal.server.deploy.BaseTest; import io.ebeaninternal.server.deploy.TableJoin; import io.ebeaninternal.server.deploy.meta.DeployTableJoin; import io.ebeaninternal.server.deploy.meta.DeployTableJoinColumn; -import io.ebeaninternal.server.expression.BaseExpressionTest; import org.junit.jupiter.api.Test; import org.tests.model.basic.Customer; @@ -16,7 +16,7 @@ import java.sql.Timestamp; import static org.assertj.core.api.Assertions.assertThat; -public class OrmQueryPlanKeyTest extends BaseExpressionTest { +public class OrmQueryPlanKeyTest extends BaseTest { @SuppressWarnings({"unchecked", "rawtypes"}) private DefaultOrmQuery query() { diff --git a/ebean-core/src/test/java/org/tests/model/basic/Order.java b/ebean-core/src/test/java/org/tests/model/basic/Order.java index 537207935..dfb9f2aef 100644 --- a/ebean-core/src/test/java/org/tests/model/basic/Order.java +++ b/ebean-core/src/test/java/org/tests/model/basic/Order.java @@ -82,8 +82,8 @@ public class Order implements Serializable { @DocEmbedded List details; -// @OneToMany(cascade = CascadeType.ALL, mappedBy = "order", orphanRemoval = true) -// List shipments; + @OneToMany(cascade = CascadeType.ALL, mappedBy = "order", orphanRemoval = true) + List shipments; @Override public String toString() { @@ -234,19 +234,19 @@ public class Order implements Serializable { details.add(detail); } -// public List getShipments() { -// return shipments; -// } -// -// public void setShipments(List shipments) { -// this.shipments = shipments; -// } -// -// public void addShipment(OrderShipment shipment) { -// -// if (shipments == null) { -// shipments = new ArrayList<>(); -// } -// shipments.add(shipment); -// } + public List getShipments() { + return shipments; + } + + public void setShipments(List shipments) { + this.shipments = shipments; + } + + public void addShipment(OrderShipment shipment) { + + if (shipments == null) { + shipments = new ArrayList<>(); + } + shipments.add(shipment); + } } diff --git a/ebean-core/src/test/java/org/tests/model/basic/OrderAggregate.java b/ebean-core/src/test/java/org/tests/model/basic/OrderAggregate.java new file mode 100644 index 000000000..364d94f2f --- /dev/null +++ b/ebean-core/src/test/java/org/tests/model/basic/OrderAggregate.java @@ -0,0 +1,64 @@ +package org.tests.model.basic; + +import io.ebean.annotation.Sql; + +import javax.persistence.Entity; +import javax.persistence.OneToOne; + +/** + * An example of an Aggregate object. + *

+ * Note the @Sql indicates to Ebean that this bean is not based on a table but + * instead uses RawSql. + *

+ */ +@Entity +@Sql +public class OrderAggregate { + + @OneToOne + Order order; + + Double maxAmount; + + Double totalAmount; + + Long totalItems; + + @Override + public String toString() { + return order.getId() + " totalAmount:" + totalAmount + " totalItems:" + totalItems; + } + + public Order getOrder() { + return order; + } + + public void setOrder(Order order) { + this.order = order; + } + + public Double getTotalAmount() { + return totalAmount; + } + + public void setTotalAmount(Double totalAmount) { + this.totalAmount = totalAmount; + } + + public Long getTotalItems() { + return totalItems; + } + + public void setTotalItems(Long totalItems) { + this.totalItems = totalItems; + } + + public Double getMaxAmount() { + return maxAmount; + } + + public void setMaxAmount(Double maxAmount) { + this.maxAmount = maxAmount; + } +} diff --git a/ebean-core/src/test/java/org/tests/model/basic/OrderShipment.java b/ebean-core/src/test/java/org/tests/model/basic/OrderShipment.java new file mode 100644 index 000000000..a587538a1 --- /dev/null +++ b/ebean-core/src/test/java/org/tests/model/basic/OrderShipment.java @@ -0,0 +1,35 @@ +package org.tests.model.basic; + +import javax.persistence.Entity; +import javax.persistence.ManyToOne; +import javax.persistence.Table; +import java.sql.Timestamp; + +@Entity +@Table(name = "or_order_ship") +public class OrderShipment extends BasicDomain { + + private static final long serialVersionUID = 1L; + + @ManyToOne + private Order order; + + private Timestamp shipTime = new Timestamp(System.currentTimeMillis()); + + public Timestamp getShipTime() { + return shipTime; + } + + public void setShipTime(Timestamp shipTime) { + this.shipTime = shipTime; + } + + public Order getOrder() { + return order; + } + + public void setOrder(Order order) { + this.order = order; + } + +} diff --git a/ebean-core/src/test/resources/h2-init.sql b/ebean-core/src/test/resources/h2-init.sql index ff38387da..10f672d4b 100644 --- a/ebean-core/src/test/resources/h2-init.sql +++ b/ebean-core/src/test/resources/h2-init.sql @@ -17,3 +17,18 @@ create table animal_shelter ( version bigint not null, constraint pk_animal_shelter primary key (id) ); + +create table o_customer ( + id integer generated by default as identity not null, + status varchar(1), + name varchar(40) not null, + smallnote varchar(100), + anniversary date, + billing_address_id integer, + shipping_address_id integer, + cretime timestamp not null, + updtime timestamp not null, + version bigint not null, + constraint ck_o_customer_status check ( status in ('N','A','I')), + constraint pk_o_customer primary key (id) +); diff --git a/ebean-test/src/test/java/io/ebean/xtest/expression/DefaultExampleExpressionTest.java b/ebean-test/src/test/java/io/ebean/xtest/expression/DefaultExampleExpressionTest.java new file mode 100644 index 000000000..84bcffc55 --- /dev/null +++ b/ebean-test/src/test/java/io/ebean/xtest/expression/DefaultExampleExpressionTest.java @@ -0,0 +1,64 @@ +package io.ebean.xtest.expression; + +import io.ebean.Query; +import io.ebean.xtest.BaseTestCase; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.tests.model.basic.Address; +import org.tests.model.basic.Customer; +import org.tests.model.basic.ResetBasicData; + +import static org.assertj.core.api.Assertions.assertThat; + + +public class DefaultExampleExpressionTest extends BaseTestCase { + + Customer customer() { + Address address = new Address(); + address.setCity("billingAddress.city"); + + Customer customer = new Customer(); + customer.setName("name"); + customer.setBillingAddress(address); + return customer; + } + + @Test + public void test() { + + Customer customer = customer(); + customer.setName("Rob"); + customer.getBillingAddress().setCity("Auckland"); + + ResetBasicData.reset(); + + Query query1 = server().find(Customer.class) + .where().exampleLike(customer) + .query(); + + query1.findList(); + + assertThat(query1.getGeneratedSql()).contains("(t0.name like "); + assertThat(query1.getGeneratedSql()).contains(" and t1.city like "); + } + + @Test + public void emptyExampleBean() { + + ResetBasicData.reset(); + + Customer customer = new Customer(); + + Query query = server().find(Customer.class) + .where() + .eq("status", Customer.Status.NEW) + .exampleLike(customer) + .startsWith("name", "Rob") + .query(); + + query.findList(); + + Assertions.assertThat(sqlOf(query)).contains("and 1=1 and t0.name like"); + } + +} diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/expression/IsEmptyExpressionQueryTest.java b/ebean-test/src/test/java/io/ebean/xtest/expression/IsEmptyExpressionQueryTest.java similarity index 98% rename from ebean-test/src/test/java/io/ebeaninternal/server/expression/IsEmptyExpressionQueryTest.java rename to ebean-test/src/test/java/io/ebean/xtest/expression/IsEmptyExpressionQueryTest.java index 9f6d3ebf6..3227ca02e 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/expression/IsEmptyExpressionQueryTest.java +++ b/ebean-test/src/test/java/io/ebean/xtest/expression/IsEmptyExpressionQueryTest.java @@ -1,9 +1,10 @@ -package io.ebeaninternal.server.expression; +package io.ebean.xtest.expression; import io.ebean.xtest.BaseTestCase; import io.ebean.DB; import io.ebean.Query; import io.ebean.test.LoggedSql; +import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.tests.model.basic.Contact; import org.tests.model.basic.Customer;