mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
90 lines
2.2 KiB
Java
90 lines
2.2 KiB
Java
package com.avaje.tests.basic;
|
|
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import java.util.ListIterator;
|
|
|
|
import junit.framework.Assert;
|
|
import junit.framework.TestCase;
|
|
|
|
import com.avaje.ebean.Ebean;
|
|
import com.avaje.ebean.bean.BeanCollection;
|
|
import com.avaje.tests.model.basic.Address;
|
|
import com.avaje.tests.model.basic.Customer;
|
|
import com.avaje.tests.model.basic.Order;
|
|
import com.avaje.tests.model.basic.OrderDetail;
|
|
import com.avaje.tests.model.basic.ResetBasicData;
|
|
|
|
public class TestReadOnlyPropagation extends TestCase {
|
|
|
|
public void testReadOnly() {
|
|
|
|
ResetBasicData.reset();
|
|
|
|
Order order = Ebean.find(Order.class)
|
|
.setAutofetch(false)
|
|
.setReadOnly(true)
|
|
.setId(1)
|
|
.findUnique();
|
|
|
|
Assert.assertTrue(Ebean.getBeanState(order).isReadOnly());
|
|
|
|
|
|
Customer customer = order.getCustomer();
|
|
Assert.assertTrue(Ebean.getBeanState(customer).isReadOnly());
|
|
|
|
Address billingAddress = customer.getBillingAddress();
|
|
Assert.assertTrue(Ebean.getBeanState(billingAddress).isReadOnly());
|
|
|
|
|
|
List<OrderDetail> details = order.getDetails();
|
|
BeanCollection<?> bc = (BeanCollection<?>)details;
|
|
|
|
Assert.assertTrue(bc.isReadOnly());
|
|
Assert.assertTrue(!bc.isPopulated());
|
|
|
|
bc.size();
|
|
Assert.assertTrue(bc.size() > 0);
|
|
Assert.assertTrue(bc.isReadOnly());
|
|
Assert.assertTrue(bc.isPopulated());
|
|
try {
|
|
details.add(new OrderDetail());
|
|
Assert.assertTrue(false);
|
|
} catch (IllegalStateException e){
|
|
Assert.assertTrue(true);
|
|
}
|
|
try {
|
|
details.remove(0);
|
|
Assert.assertTrue(false);
|
|
} catch (IllegalStateException e){
|
|
Assert.assertTrue(true);
|
|
}
|
|
try {
|
|
Iterator<OrderDetail> it = details.iterator();
|
|
it.next();
|
|
it.remove();
|
|
Assert.assertTrue(false);
|
|
} catch (IllegalStateException e){
|
|
Assert.assertTrue(true);
|
|
}
|
|
try {
|
|
ListIterator<OrderDetail> it = details.listIterator();
|
|
it.next();
|
|
it.remove();
|
|
Assert.assertTrue(false);
|
|
} catch (IllegalStateException e){
|
|
Assert.assertTrue(true);
|
|
}
|
|
try {
|
|
List<OrderDetail> subList = details.subList(0, 1);
|
|
subList.remove(0);
|
|
Assert.assertTrue(false);
|
|
} catch (UnsupportedOperationException e){
|
|
Assert.assertTrue(true);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|