#431 - Add failing test ... Annotation PrivateOwned seems not enough to update an change in the list of children

This commit is contained in:
Robin Bygrave
2015-10-22 09:27:32 +13:00
parent dc968f16bf
commit 409e2b75ce
@@ -1,16 +1,18 @@
package com.avaje.tests.cascade;
import java.util.List;
import java.util.Set;
import org.junit.Assert;
import org.junit.Test;
import com.avaje.ebean.BaseTestCase;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.bean.BeanCollection;
import com.avaje.tests.model.basic.TSDetail;
import com.avaje.tests.model.basic.TSMaster;
import org.junit.Test;
import java.util.List;
import java.util.Set;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
public class TestPrivateOwned extends BaseTestCase {
@@ -33,9 +35,9 @@ public class TestPrivateOwned extends BaseTestCase {
BeanCollection<?> bc = (BeanCollection<?>) details;
Set<?> modifyRemovals = bc.getModifyRemovals();
Assert.assertNotNull(modifyRemovals);
Assert.assertTrue(modifyRemovals.size() == 1);
Assert.assertTrue(modifyRemovals.contains(removedDetail));
assertNotNull(modifyRemovals);
assertTrue(modifyRemovals.size() == 1);
assertTrue(modifyRemovals.contains(removedDetail));
Ebean.save(master);
@@ -43,11 +45,31 @@ public class TestPrivateOwned extends BaseTestCase {
List<TSDetail> detailsReload = masterReload.getDetails();
// the removed bean has really been removed
Assert.assertTrue(detailsReload.size() == 1);
assertTrue(detailsReload.size() == 1);
TSMaster master3 = Ebean.find(TSMaster.class, m0.getId());
List<TSDetail> details3 = master3.getDetails();
details3.clear();
}
@Test
public void insertThenUpdate() {
TSMaster m0 = new TSMaster();
m0.setName("m2");
m0.addDetail(new TSDetail("m2 detail 1"));
m0.addDetail(new TSDetail("m2 detail 2"));
Ebean.save(m0);
assertThat(m0.getDetails()).hasSize(2);
m0.getDetails().remove(0);
Ebean.save(m0);
TSMaster masterReload = Ebean.find(TSMaster.class, m0.getId());
assertThat(masterReload.getDetails()).hasSize(1);
}
}