package org.tests.insert;
import io.ebean.BaseTestCase;
import io.ebean.Ebean;
import org.tests.model.basic.Customer;
import org.junit.Assert;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
public class TestInsertCollection extends BaseTestCase {
@Test
public void test() {
Customer cust1 = new Customer();
cust1.setName("jim");
Customer cust2 = new Customer();
cust2.setName("bob");
List<Customer> customers = new ArrayList<>();
customers.add(cust1);
customers.add(cust2);
Ebean.insertAll(customers);
Assert.assertNotNull(cust1.getId());
Assert.assertNotNull(cust2.getId());
Customer cust1Check = Ebean.find(Customer.class, cust1.getId());
Assert.assertEquals(cust1.getName(), cust1Check.getName());
Customer cust2Check = Ebean.find(Customer.class, cust2.getId());
Assert.assertEquals(cust2.getName(), cust2Check.getName());
cust1.setName("jim-changed");
cust2.setName("bob-changed");
Ebean.updateAll(customers);
awaitL2Cache();
Customer cust1Check2 = Ebean.find(Customer.class, cust1.getId());
Assert.assertEquals("jim-changed", cust1Check2.getName());
Customer cust2Check2 = Ebean.find(Customer.class, cust2.getId());
Assert.assertEquals("bob-changed", cust2Check2.getName());
cust1Check2.setName("jim-updated");
Customer cust3 = new Customer();
cust3.setName("mac");
List<Customer> saveList = new ArrayList<>();
saveList.add(cust1Check2);
saveList.add(cust3);
Ebean.saveAll(saveList);
awaitL2Cache();
Customer cust1Check3 = Ebean.find(Customer.class, cust1.getId());
Assert.assertEquals("jim-updated", cust1Check3.getName());
Customer cust3Check = Ebean.find(Customer.class, cust3.getId());
Assert.assertEquals("mac", cust3Check.getName());
List<Customer> deleteList = new ArrayList<>();
deleteList.add(cust1Check3);
deleteList.add(cust3);
deleteList.add(cust2Check2);
Ebean.deleteAll(deleteList);
awaitL2Cache();
Assert.assertNull(Ebean.find(Customer.class, cust1Check3.getId()));
Assert.assertNull(Ebean.find(Customer.class, cust2Check2.getId()));
Assert.assertNull(Ebean.find(Customer.class, cust3.getId()));
}
}