Package com.avaje.tests.basic

Source Code of com.avaje.tests.basic.TestReadOnlyPropagation

package com.avaje.tests.basic;

import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

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.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 BaseTestCase {

  @Test
  public void testReadOnly() {
   
    ResetBasicData.reset();
   
    Order order = Ebean.find(Order.class)
      .setAutofetch(false)
      .setUseCache(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);     
    }

   
  }
 
}
TOP

Related Classes of com.avaje.tests.basic.TestReadOnlyPropagation

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.