mirror of
https://github.com/ebean-orm/ebean.git
synced 2026-11-14 06:45:21 +00:00
Refactor tests, move some internal expression tests to ebean-core
This commit is contained in:
1 parent
28088a5e54
commit
e3e5414157
37 files changed
+221
-97
No files matched your search
File renamed without changes.
+2
-2
@@ -1,18 +1,18 @@
|
|||||||
package io.ebeaninternal.server.expression;
|
package io.ebeaninternal.server.expression;
|
||||||
|
|
||||||
import io.ebean.xtest.BaseTestCase;
|
|
||||||
import io.ebean.EbeanServer;
|
import io.ebean.EbeanServer;
|
||||||
import io.ebean.Query;
|
import io.ebean.Query;
|
||||||
import io.ebean.Transaction;
|
import io.ebean.Transaction;
|
||||||
import io.ebean.event.BeanQueryRequest;
|
import io.ebean.event.BeanQueryRequest;
|
||||||
import io.ebeaninternal.api.SpiExpression;
|
import io.ebeaninternal.api.SpiExpression;
|
||||||
|
import io.ebeaninternal.server.deploy.BaseTest;
|
||||||
import io.ebeaninternal.server.deploy.BeanDescriptor;
|
import io.ebeaninternal.server.deploy.BeanDescriptor;
|
||||||
import org.tests.model.basic.Customer;
|
import org.tests.model.basic.Customer;
|
||||||
import org.tests.model.basic.Order;
|
import org.tests.model.basic.Order;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
public abstract class BaseExpressionTest extends BaseTestCase {
|
public abstract class BaseExpressionTest extends BaseTest {
|
||||||
|
|
||||||
protected DefaultExpressionRequest newExpressionRequest() {
|
protected DefaultExpressionRequest newExpressionRequest() {
|
||||||
BeanDescriptor<Order> desc = getBeanDescriptor(Order.class);
|
BeanDescriptor<Order> desc = getBeanDescriptor(Order.class);
|
||||||
File renamed without changes.
+2
-1
@@ -1,5 +1,6 @@
|
|||||||
package io.ebeaninternal.server.expression;
|
package io.ebeaninternal.server.expression;
|
||||||
|
|
||||||
|
import org.assertj.core.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
@@ -14,7 +15,7 @@ public class BetweenPropertyExpressionTest extends BaseExpressionTest {
|
|||||||
public void sqlExpression() {
|
public void sqlExpression() {
|
||||||
TDSpiExpressionRequest request = new TDSpiExpressionRequest(null);
|
TDSpiExpressionRequest request = new TDSpiExpressionRequest(null);
|
||||||
exp("a", "b", 10).addSql(request);
|
exp("a", "b", 10).addSql(request);
|
||||||
assertThat(request.getSql()).isEqualTo(" ? between a and b");
|
Assertions.assertThat(request.getSql()).isEqualTo(" ? between a and b");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
File renamed without changes.
+2
-39
@@ -1,19 +1,16 @@
|
|||||||
package io.ebeaninternal.server.expression;
|
package io.ebeaninternal.server.expression;
|
||||||
|
|
||||||
import io.ebean.LikeType;
|
import io.ebean.LikeType;
|
||||||
import io.ebean.Query;
|
|
||||||
import io.ebean.bean.EntityBean;
|
import io.ebean.bean.EntityBean;
|
||||||
import io.ebean.event.BeanQueryRequest;
|
import io.ebean.event.BeanQueryRequest;
|
||||||
import io.ebeaninternal.api.ManyWhereJoins;
|
import io.ebeaninternal.api.ManyWhereJoins;
|
||||||
import io.ebeaninternal.api.SpiQuery;
|
import io.ebeaninternal.api.SpiQuery;
|
||||||
import io.ebeaninternal.server.core.OrmQueryRequest;
|
import io.ebeaninternal.server.core.OrmQueryRequest;
|
||||||
import io.ebeaninternal.server.deploy.BeanDescriptor;
|
import io.ebeaninternal.server.deploy.BeanDescriptor;
|
||||||
|
import org.assertj.core.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.tests.model.basic.Address;
|
import org.tests.model.basic.Address;
|
||||||
import org.tests.model.basic.Customer;
|
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 {
|
public class DefaultExampleExpressionTest extends BaseExpressionTest {
|
||||||
@@ -72,43 +69,9 @@ public class DefaultExampleExpressionTest extends BaseExpressionTest {
|
|||||||
TDSpiExpressionRequest req = new TDSpiExpressionRequest(customerBeanDescriptor());
|
TDSpiExpressionRequest req = new TDSpiExpressionRequest(customerBeanDescriptor());
|
||||||
expr.addBindValues(req);
|
expr.addBindValues(req);
|
||||||
|
|
||||||
assertThat(req.bindValues).contains("name", "billingAddress.city");
|
Assertions.assertThat(req.bindValues).contains("name", "billingAddress.city");
|
||||||
|
|
||||||
Customer customer = customer();
|
|
||||||
customer.setName("Rob");
|
|
||||||
customer.getBillingAddress().setCity("Auckland");
|
|
||||||
|
|
||||||
ResetBasicData.reset();
|
|
||||||
|
|
||||||
Query<Customer> 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<Customer> 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 <T> OrmQueryRequest<T> create(SpiQuery<T> query) {
|
private <T> OrmQueryRequest<T> create(SpiQuery<T> query) {
|
||||||
return new OrmQueryRequest<>(null, null, query, null);
|
return new OrmQueryRequest<>(null, null, query, null);
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+4
-25
@@ -2,50 +2,29 @@ package io.ebeaninternal.server.expression;
|
|||||||
|
|
||||||
import io.ebean.DB;
|
import io.ebean.DB;
|
||||||
import io.ebean.Query;
|
import io.ebean.Query;
|
||||||
import io.ebean.test.LoggedSql;
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.tests.model.basic.Customer;
|
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;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
|
||||||
public class NoopExpressionTest extends BaseExpressionTest {
|
public class NoopExpressionTest extends BaseExpressionTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test() {
|
public void test() {
|
||||||
|
initTables();
|
||||||
Query<Customer> query = DB.find(Customer.class)
|
Query<Customer> query = DB.find(Customer.class)
|
||||||
.select("id")
|
.select("id")
|
||||||
.where().add(NoopExpression.INSTANCE)
|
.where().add(NoopExpression.INSTANCE)
|
||||||
.query();
|
.query();
|
||||||
|
|
||||||
query.findList();
|
query.findList();
|
||||||
String generatedSql = sqlOf(query);
|
String generatedSql = query.getGeneratedSql();
|
||||||
|
|
||||||
assertThat(generatedSql).contains("select t0.id from o_customer t0 where 1=1");
|
assertThat(generatedSql).contains("select t0.id from o_customer t0 where 1=1");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void test_withSoftDeleteBean() {
|
|
||||||
|
|
||||||
Query<Cover> query = DB.find(Cover.class)
|
|
||||||
.where().add(NoopExpression.INSTANCE)
|
|
||||||
.query();
|
|
||||||
|
|
||||||
LoggedSql.start();
|
|
||||||
|
|
||||||
query.findCount();
|
|
||||||
|
|
||||||
List<String> sql = LoggedSql.stop();
|
|
||||||
assertSql(sql.get(0)).contains("select count(*) from cover t0 where 1=1 and");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test_withPreAndPost() {
|
public void test_withPreAndPost() {
|
||||||
|
initTables();
|
||||||
Query<Customer> query = DB.find(Customer.class)
|
Query<Customer> query = DB.find(Customer.class)
|
||||||
.select("id")
|
.select("id")
|
||||||
.where().eq("name", null)
|
.where().eq("name", null)
|
||||||
@@ -54,7 +33,7 @@ public class NoopExpressionTest extends BaseExpressionTest {
|
|||||||
.query();
|
.query();
|
||||||
|
|
||||||
query.findList();
|
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");
|
assertThat(generatedSql).contains("select t0.id from o_customer t0 where t0.name is null and 1=1 and t0.status is not null");
|
||||||
}
|
}
|
||||||
File renamed without changes.
File renamed without changes.
+2
-2
@@ -1,9 +1,9 @@
|
|||||||
package io.ebeaninternal.server.expression;
|
package io.ebeaninternal.server.expression;
|
||||||
|
|
||||||
import io.ebean.xtest.BaseTestCase;
|
|
||||||
import io.ebean.DB;
|
import io.ebean.DB;
|
||||||
import io.ebean.ExpressionList;
|
import io.ebean.ExpressionList;
|
||||||
import io.ebeaninternal.api.SpiExpression;
|
import io.ebeaninternal.api.SpiExpression;
|
||||||
|
import io.ebeaninternal.server.deploy.BaseTest;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.tests.model.basic.Order;
|
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.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||||
|
|
||||||
public class PrepareDocNestedTest extends BaseTestCase {
|
public class PrepareDocNestedTest extends BaseTest {
|
||||||
@Test
|
@Test
|
||||||
public void prepare() throws Exception {
|
public void prepare() throws Exception {
|
||||||
|
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+8
-6
@@ -1,19 +1,21 @@
|
|||||||
package io.ebeaninternal.server.querydefn;
|
package io.ebeaninternal.server.querydefn;
|
||||||
|
|
||||||
|
|
||||||
import io.ebean.xtest.BaseTestCase;
|
import io.ebean.*;
|
||||||
import io.ebean.CacheMode;
|
|
||||||
import io.ebean.DB;
|
|
||||||
import io.ebeaninternal.api.BindValuesKey;
|
import io.ebeaninternal.api.BindValuesKey;
|
||||||
import io.ebeaninternal.api.SpiQuery;
|
import io.ebeaninternal.api.SpiQuery;
|
||||||
|
import io.ebeaninternal.server.core.DefaultServer;
|
||||||
import io.ebeaninternal.server.core.OrmQueryRequest;
|
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.junit.jupiter.api.Test;
|
||||||
import org.tests.model.basic.Customer;
|
import org.tests.model.basic.Customer;
|
||||||
import org.tests.model.basic.Order;
|
import org.tests.model.basic.Order;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
public class DefaultOrmQueryTest extends BaseTestCase {
|
public class DefaultOrmQueryTest extends BaseExpressionTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void when_forUpdate_then_excludeFromBeanCache() {
|
public void when_forUpdate_then_excludeFromBeanCache() {
|
||||||
@@ -105,10 +107,10 @@ public class DefaultOrmQueryTest extends BaseTestCase {
|
|||||||
|
|
||||||
private <T> void prepare(DefaultOrmQuery<T> q1, DefaultOrmQuery<T> q2) {
|
private <T> void prepare(DefaultOrmQuery<T> q1, DefaultOrmQuery<T> q2) {
|
||||||
|
|
||||||
OrmQueryRequest<T> r1 = createQueryRequest(SpiQuery.Type.LIST, q1, null);
|
OrmQueryRequest<T> r1 = OrmQueryRequestTestHelper.queryRequest(q1);
|
||||||
q1.prepare(r1);
|
q1.prepare(r1);
|
||||||
|
|
||||||
OrmQueryRequest<T> r2 = createQueryRequest(SpiQuery.Type.LIST, q2, null);
|
OrmQueryRequest<T> r2 = OrmQueryRequestTestHelper.queryRequest(q2);
|
||||||
q2.prepare(r2);
|
q2.prepare(r2);
|
||||||
}
|
}
|
||||||
|
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package io.ebeaninternal.server.querydefn;
|
package io.ebeaninternal.server.querydefn;
|
||||||
|
|
||||||
import io.ebean.xtest.BaseTestCase;
|
import io.ebeaninternal.server.deploy.BaseTest;
|
||||||
import io.ebeaninternal.server.deploy.BeanDescriptor;
|
import io.ebeaninternal.server.deploy.BeanDescriptor;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.tests.model.basic.Order;
|
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.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
public class OrmQueryDetailTest extends BaseTestCase {
|
public class OrmQueryDetailTest extends BaseTest {
|
||||||
|
|
||||||
OrmQueryDetail parse(String query) {
|
OrmQueryDetail parse(String query) {
|
||||||
return new OrmQueryDetailParser(query).parse();
|
return new OrmQueryDetailParser(query).parse();
|
||||||
+2
-2
@@ -5,10 +5,10 @@ import io.ebean.ExpressionList;
|
|||||||
import io.ebean.Query;
|
import io.ebean.Query;
|
||||||
import io.ebeaninternal.api.CQueryPlanKey;
|
import io.ebeaninternal.api.CQueryPlanKey;
|
||||||
import io.ebeaninternal.api.SpiQuery;
|
import io.ebeaninternal.api.SpiQuery;
|
||||||
|
import io.ebeaninternal.server.deploy.BaseTest;
|
||||||
import io.ebeaninternal.server.deploy.TableJoin;
|
import io.ebeaninternal.server.deploy.TableJoin;
|
||||||
import io.ebeaninternal.server.deploy.meta.DeployTableJoin;
|
import io.ebeaninternal.server.deploy.meta.DeployTableJoin;
|
||||||
import io.ebeaninternal.server.deploy.meta.DeployTableJoinColumn;
|
import io.ebeaninternal.server.deploy.meta.DeployTableJoinColumn;
|
||||||
import io.ebeaninternal.server.expression.BaseExpressionTest;
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.tests.model.basic.Customer;
|
import org.tests.model.basic.Customer;
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ import java.sql.Timestamp;
|
|||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
public class OrmQueryPlanKeyTest extends BaseExpressionTest {
|
public class OrmQueryPlanKeyTest extends BaseTest {
|
||||||
|
|
||||||
@SuppressWarnings({"unchecked", "rawtypes"})
|
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||||
private DefaultOrmQuery<Customer> query() {
|
private DefaultOrmQuery<Customer> query() {
|
||||||
@@ -82,8 +82,8 @@ public class Order implements Serializable {
|
|||||||
@DocEmbedded
|
@DocEmbedded
|
||||||
List<OrderDetail> details;
|
List<OrderDetail> details;
|
||||||
|
|
||||||
// @OneToMany(cascade = CascadeType.ALL, mappedBy = "order", orphanRemoval = true)
|
@OneToMany(cascade = CascadeType.ALL, mappedBy = "order", orphanRemoval = true)
|
||||||
// List<OrderShipment> shipments;
|
List<OrderShipment> shipments;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
@@ -234,19 +234,19 @@ public class Order implements Serializable {
|
|||||||
details.add(detail);
|
details.add(detail);
|
||||||
}
|
}
|
||||||
|
|
||||||
// public List<OrderShipment> getShipments() {
|
public List<OrderShipment> getShipments() {
|
||||||
// return shipments;
|
return shipments;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// public void setShipments(List<OrderShipment> shipments) {
|
public void setShipments(List<OrderShipment> shipments) {
|
||||||
// this.shipments = shipments;
|
this.shipments = shipments;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// public void addShipment(OrderShipment shipment) {
|
public void addShipment(OrderShipment shipment) {
|
||||||
//
|
|
||||||
// if (shipments == null) {
|
if (shipments == null) {
|
||||||
// shipments = new ArrayList<>();
|
shipments = new ArrayList<>();
|
||||||
// }
|
}
|
||||||
// shipments.add(shipment);
|
shipments.add(shipment);
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
@@ -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.
|
||||||
|
* <p>
|
||||||
|
* Note the @Sql indicates to Ebean that this bean is not based on a table but
|
||||||
|
* instead uses RawSql.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
@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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -17,3 +17,18 @@ create table animal_shelter (
|
|||||||
version bigint not null,
|
version bigint not null,
|
||||||
constraint pk_animal_shelter primary key (id)
|
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)
|
||||||
|
);
|
||||||
@@ -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<Customer> 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<Customer> 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");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+2
-1
@@ -1,9 +1,10 @@
|
|||||||
package io.ebeaninternal.server.expression;
|
package io.ebean.xtest.expression;
|
||||||
|
|
||||||
import io.ebean.xtest.BaseTestCase;
|
import io.ebean.xtest.BaseTestCase;
|
||||||
import io.ebean.DB;
|
import io.ebean.DB;
|
||||||
import io.ebean.Query;
|
import io.ebean.Query;
|
||||||
import io.ebean.test.LoggedSql;
|
import io.ebean.test.LoggedSql;
|
||||||
|
import org.assertj.core.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.tests.model.basic.Contact;
|
import org.tests.model.basic.Contact;
|
||||||
import org.tests.model.basic.Customer;
|
import org.tests.model.basic.Customer;
|
||||||
Reference in new issue
Block a user