Merge branch 'master' into wip/h2database-v2

This commit is contained in:
Rob Bygrave
2022-01-26 22:07:20 +13:00
36 changed files with 681 additions and 582 deletions
@@ -6,13 +6,20 @@ import io.ebean.Database;
import io.ebean.annotation.IgnorePlatform;
import io.ebean.annotation.Platform;
import io.ebean.annotation.Transactional;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.tests.model.basic.Customer;
import org.tests.model.basic.ResetBasicData;
import static org.junit.jupiter.api.Assertions.assertNotNull;
public class TestBatchSaveWithGetBeanId extends BaseTestCase {
@BeforeAll
static void before() {
ResetBasicData.reset();
}
/**
* Making this transaction with batchSize means that the insert
* below does not occur immediately ... and the getBeanId()
@@ -22,7 +29,6 @@ public class TestBatchSaveWithGetBeanId extends BaseTestCase {
@Test
@IgnorePlatform(Platform.HANA) // HANA doesn't support insert batching
public void test() {
Database server = DB.getDefault();
Customer model = new Customer();
model.setName("foo");
@@ -2,8 +2,10 @@ package org.tests.insert;
import io.ebean.BaseTestCase;
import io.ebean.DB;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.tests.model.basic.Customer;
import org.tests.model.basic.ResetBasicData;
import java.util.ArrayList;
import java.util.List;
@@ -12,9 +14,13 @@ import static org.junit.jupiter.api.Assertions.*;
public class TestInsertCollection extends BaseTestCase {
@BeforeAll
static void before() {
ResetBasicData.reset();
}
@Test
public void test() {
Customer cust1 = new Customer();
cust1.setName("jim");
@@ -2,6 +2,7 @@ package org.tests.model.basic;
import io.ebean.DB;
import io.ebean.Database;
import io.ebean.Transaction;
import org.tests.model.basic.Order.Status;
import java.sql.Date;
@@ -47,6 +48,7 @@ public class ResetBasicData {
// the test rely on the products being in there
return;
}
Transaction.current().setBatchMode(false);
//me.deleteAll();
me.insertCountries();
me.insertProducts();
@@ -56,100 +58,55 @@ public class ResetBasicData {
}
public void deleteAll() {
DB.execute(() -> {
private void insertCountries() {
Country c = new Country();
c.setCode("NZ");
c.setName("New Zealand");
server.save(c);
// orm update use bean name and bean properties
server.sqlUpdate("delete from o_cached_bean_child").execute();
server.sqlUpdate("delete from o_cached_bean_country").execute();
server.sqlUpdate("delete from o_cached_bean").execute();
server.createUpdate(OrderShipment.class, "delete from orderShipment").execute();
server.createUpdate(OrderDetail.class, "delete from orderDetail").execute();
server.createUpdate(Order.class, "delete from order").execute();
server.createUpdate(Contact.class, "delete from contact").execute();
server.createUpdate(Customer.class, "delete from Customer").execute();
server.createUpdate(Address.class, "delete from address").execute();
// sql update uses table and column names
server.sqlUpdate("delete from o_country").execute();
server.sqlUpdate("delete from o_product").execute();
});
Country au = new Country();
au.setCode("AU");
au.setName("Australia");
server.save(au);
}
public void insertCountries() {
private void insertProducts() {
Product p = new Product();
p.setName("Chair");
p.setSku("C001");
server.save(p);
if (server.find(Country.class).findCount() > 0) {
return;
}
p = new Product();
p.setName("Desk");
p.setSku("DSK1");
server.save(p);
server.execute(() -> {
Country c = new Country();
c.setCode("NZ");
c.setName("New Zealand");
server.save(c);
p = new Product();
p.setName("Computer");
p.setSku("C002");
server.save(p);
Country au = new Country();
au.setCode("AU");
au.setName("Australia");
server.save(au);
});
p = new Product();
p.setName("Printer");
p.setSku("C003");
server.save(p);
}
private void insertTestCustAndOrders() {
Customer cust1 = insertCustomer("Rob");
Customer cust2 = insertCustomerNoAddress();
insertCustomerFiona();
insertCustomerNoContacts("NocCust");
public void insertProducts() {
if (server.find(Product.class).findCount() > 0) {
return;
}
server.execute(() -> {
Product p = new Product();
p.setName("Chair");
p.setSku("C001");
server.save(p);
p = new Product();
p.setName("Desk");
p.setSku("DSK1");
server.save(p);
p = new Product();
p.setName("Computer");
p.setSku("C002");
server.save(p);
p = new Product();
p.setName("Printer");
p.setSku("C003");
server.save(p);
});
}
public void insertTestCustAndOrders() {
DB.execute(() -> {
Customer cust1 = insertCustomer("Rob");
Customer cust2 = insertCustomerNoAddress();
insertCustomerFiona();
insertCustomerNoContacts("NocCust");
createOrder1(cust1);
createOrder2(cust2);
createOrder3(cust1);
createOrder4(cust1);
createOrder5(cust2);
});
createOrder1(cust1);
createOrder2(cust2);
createOrder3(cust1);
createOrder4(cust1);
createOrder5(cust2);
}
public static Customer createCustAndOrder(String custName) {
ResetBasicData me = new ResetBasicData();
Customer cust1 = insertCustomer(custName);
me.createOrder1(cust1);
@@ -157,7 +114,6 @@ public class ResetBasicData {
}
public static Order createOrderCustAndOrder(String custName) {
ResetBasicData me = new ResetBasicData();
Customer cust1 = insertCustomer(custName);
return me.createOrder1(cust1);
@@ -166,10 +122,8 @@ public class ResetBasicData {
private static int contactEmailNum = 1;
private Customer insertCustomerFiona() {
Customer c = createCustomer("Fiona", "12 Apple St", "West Coast Rd", 1, "2009-08-31");
c.setStatus(Customer.Status.ACTIVE);
c.addContact(createContact("Fiona", "Black"));
c.addContact(createContact("Tracy", "Red"));
@@ -185,22 +139,18 @@ public class ResetBasicData {
}
private Customer insertCustomerNoContacts(String name) {
Customer c = createCustomer("Roger", "15 Kumera Way", "Bos town", 1, "2010-04-10");
c.setName(name);
c.setStatus(Customer.Status.ACTIVE);
DB.save(c);
return c;
}
private Customer insertCustomerNoAddress() {
Customer c = new Customer();
c.setName("Cust NoAddress");
c.setStatus(Customer.Status.NEW);
c.addContact(createContact("Jack", "Black"));
DB.save(c);
return c;
}
@@ -216,7 +166,6 @@ public class ResetBasicData {
}
public static Customer createCustomer(String name, String shippingStreet, String billingStreet, int contactSuffix, String annDate) {
Customer c = new Customer();
c.setName(name);
c.setStatus(Customer.Status.NEW);
@@ -251,17 +200,14 @@ public class ResetBasicData {
c.setBillingAddress(billingAddr);
}
return c;
}
private Order createOrder1(Customer customer) {
Product product1 = DB.reference(Product.class, 1);
Product product2 = DB.reference(Product.class, 2);
Product product3 = DB.reference(Product.class, 3);
Order order = new Order();
order.setCustomer(customer);
order.setOrderDate(Date.valueOf("2018-07-01"));
@@ -271,16 +217,12 @@ public class ResetBasicData {
details.add(new OrderDetail(product2, 3, 1.10));
details.add(new OrderDetail(product3, 1, 2.00));
order.setDetails(details);
order.addShipment(new OrderShipment());
DB.save(order);
return order;
}
private void createOrder2(Customer customer) {
Product product1 = DB.reference(Product.class, 1);
Order order = new Order();
@@ -291,14 +233,11 @@ public class ResetBasicData {
List<OrderDetail> details = new ArrayList<>();
details.add(new OrderDetail(product1, 4, 10.50));
order.setDetails(details);
order.addShipment(new OrderShipment());
DB.save(order);
}
private void createOrder3(Customer customer) {
Product product1 = DB.reference(Product.class, 1);
Product product3 = DB.reference(Product.class, 3);
@@ -312,30 +251,23 @@ public class ResetBasicData {
details.add(new OrderDetail(product3, 40, 2.10));
details.add(new OrderDetail(product1, 5, 10.00));
order.setDetails(details);
order.addShipment(new OrderShipment());
DB.save(order);
}
private void createOrder4(Customer customer) {
Order order = new Order();
order.setCustomer(customer);
order.setOrderDate(Date.valueOf("2018-07-04"));
order.addShipment(new OrderShipment());
DB.save(order);
}
private void createOrder5(Customer customer) {
Order order = new Order();
order.setCustomer(customer);
order.setOrderDate(Date.valueOf("2018-06-28"));
order.addShipment(new OrderShipment());
DB.save(order);
}
}
@@ -131,7 +131,7 @@ public class TestQuerySingleAttribute extends BaseTestCase {
Query<Customer> query = DB.find(Customer.class)
.select("name")
.where().eq("id", 1).query();
.where().eq("name", "Rob").query();
String name = query.findSingleAttribute();
@@ -248,7 +248,7 @@ public class TestQuerySingleAttribute extends BaseTestCase {
String name = DB.find(Customer.class)
.select("name")
.where().eq("id", 1)
.where().eq("name", "Rob")
.findSingleAttribute();
assertThat(name).isNotNull();
@@ -646,7 +646,7 @@ public class TestQuerySingleAttribute extends BaseTestCase {
.findSingleAttributeList();
assertThat(list1.get(0)).isInstanceOf(CountedValue.class);
//assertThat(list1.toString()).isEqualTo("[1: Tracy, 3: Jim1, 1: Jack, 3: Fred1, 1: Fiona, 3: Bugs1]");
query = DB.find(Contact.class).select("firstName");
list1 = query
.setCountDistinct(CountDistinctOrder.NO_ORDERING)
@@ -3,11 +3,13 @@ package org.tests.update;
import io.ebean.DB;
import io.ebean.TransactionalTestCase;
import io.ebean.test.LoggedSql;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.tests.model.basic.Contact;
import org.tests.model.basic.Customer;
import org.tests.model.basic.EBasic;
import org.tests.model.basic.EBasic.Status;
import org.tests.model.basic.ResetBasicData;
import javax.persistence.EntityNotFoundException;
import java.util.*;
@@ -17,6 +19,11 @@ import static org.junit.jupiter.api.Assertions.*;
public class TestStatelessUpdate extends TransactionalTestCase {
@BeforeAll
static void before() {
ResetBasicData.reset();
}
@Test
public void test() {
@@ -3,14 +3,21 @@ package org.tests.update;
import io.ebean.BaseTestCase;
import io.ebean.DB;
import io.ebean.SqlRow;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.tests.model.basic.Customer;
import org.tests.model.basic.ResetBasicData;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class TestUpdatePartial extends BaseTestCase {
@BeforeAll
static void before() {
ResetBasicData.reset();
}
@Test
public void test() {