Package siena.base.test

Source Code of siena.base.test.GaeModelTest

package siena.base.test;

import java.util.ArrayList;
import java.util.List;

import siena.Model;
import siena.PersistenceManager;
import siena.PersistenceManagerFactory;
import siena.SienaException;
import siena.base.test.model.AggregateChildModel;
import siena.base.test.model.AggregateParentModel;
import siena.base.test.model.StringListModel;
import siena.base.test.model.TransactionAccountFrom;
import siena.base.test.model.TransactionAccountFromModel;
import siena.gae.GaePersistenceManager;

import com.google.appengine.tools.development.testing.LocalDatastoreServiceTestConfig;
import com.google.appengine.tools.development.testing.LocalServiceTestHelper;

public class GaeModelTest extends BaseModelTest{
  private final LocalServiceTestHelper helper =
        new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());

  @Override
  public PersistenceManager createPersistenceManager(List<Class<?>> classes)
      throws Exception {
    GaePersistenceManager pm = new GaePersistenceManager();
    pm.init(null);
    return pm;
  }
 
  @Override
    public void setUp() throws Exception {
      helper.setUp();
        super.setUp();
    PersistenceManagerFactory.install(pm, AggregateChildModel.class);
    PersistenceManagerFactory.install(pm, AggregateParentModel.class);
    PersistenceManagerFactory.install(pm, StringListModel.class);
    }

    @Override
    public void tearDown() throws Exception {
        super.tearDown();
        helper.tearDown();
    }
 
  @Override
  public void testGet() {
    // TODO Auto-generated method stub
    super.testGet();
  }

  @Override
  public void testFetch() {
    // TODO Auto-generated method stub
    super.testFetch();
  }

  @Override
  public void testFetchAsync() {
    // TODO Auto-generated method stub
    super.testFetchAsync();
  }

  @Override
  public void testFetchAsync2Models() {
    // TODO Auto-generated method stub
    super.testFetchAsync2Models();
  }

  @Override
  public void testFetchAsyncAndGetAndResetAsync2Models() {
    // TODO Auto-generated method stub
    super.testFetchAsyncAndGetAndResetAsync2Models();
  }

  @Override
  public void testFetchPaginateSyncAndGetAndResetAsync2Models() {
    // TODO Auto-generated method stub
    super.testFetchPaginateSyncAndGetAndResetAsync2Models();
  }

  @Override
  public void testFetchAsyncAndGetAndResetSync2Models() {
    // TODO Auto-generated method stub
    super.testFetchAsyncAndGetAndResetSync2Models();
  }

  @Override
  public void testFetchPaginateAsyncAndGetAndResetAsync2Models() {
    // TODO Auto-generated method stub
    super.testFetchPaginateAsyncAndGetAndResetAsync2Models();
  }

  @Override
  public void testFetchPaginateAsyncStatefulAndGetAndResetAsync2Models() {
    // TODO Auto-generated method stub
    super.testFetchPaginateAsyncStatefulAndGetAndResetAsync2Models();
  }

  @Override
  public void testFetchPaginateStatefulAsyncAndGetAndResetAsync2Models() {
    // TODO Auto-generated method stub
    super.testFetchPaginateStatefulAsyncAndGetAndResetAsync2Models();
  }

  @Override
  public void testFetchPaginateStatefulAsyncAndGetAndResetSync2Models() {
    // TODO Auto-generated method stub
    super.testFetchPaginateStatefulAsyncAndGetAndResetSync2Models();
  }

  @Override
  public void testFetchPaginateAsync2Sync2AsyncAndGetAndResetSync2Models() {
    // TODO Auto-generated method stub
    super.testFetchPaginateAsync2Sync2AsyncAndGetAndResetSync2Models();
  }

  @Override
  public void testFetchPaginateStatefulUpdateData() {
    // TODO Auto-generated method stub
    super.testFetchPaginateStatefulUpdateData();
  }

  @Override
  public void testFetchPaginateStatelessUpdateData() {
    // TODO Auto-generated method stub
    super.testFetchPaginateStatelessUpdateData();
  }

  @Override
  public void testFetchPaginateStatefulAsyncUpdateData() {
    // TODO Auto-generated method stub
    super.testFetchPaginateStatefulAsyncUpdateData();
  }

  @Override
  public void testFetchPaginateStatelessAsyncUpdateData() {
    // TODO Auto-generated method stub
    super.testFetchPaginateStatelessAsyncUpdateData();
  }

  @Override
  public void testFetchPaginateStatefulRealAsyncUpdateData() {
    // TODO Auto-generated method stub
    super.testFetchPaginateStatefulRealAsyncUpdateData();
  }

  @Override
  public void testInsert() {
    // TODO Auto-generated method stub
    super.testInsert();
  }

  @Override
  public void testInsertManyAsync() {
    // TODO Auto-generated method stub
    super.testInsertManyAsync();
  }

  @Override
  public void testInsertMany() {
    // TODO Auto-generated method stub
    super.testInsertMany();
  }

  @Override
  public void testInsertAsync() {
    // TODO Auto-generated method stub
    super.testInsertAsync();
  }

  @Override
  public void testInsertAutoQuery() {
    // TODO Auto-generated method stub
    super.testInsertAutoQuery();
  }



  @Override
  public void testInsertAutoQueryAsyncFetchSync() {
    // TODO Auto-generated method stub
    super.testInsertAutoQueryAsyncFetchSync();
  }

  @Override
  public void testInsertAutoQueryAsyncFetchAsync() {
    // TODO Auto-generated method stub
    super.testInsertAutoQueryAsyncFetchAsync();
  }

  @Override
  public void testInsertAutoQueryMany() {
    // TODO Auto-generated method stub
    super.testInsertAutoQueryMany();
  }


  @Override
  public void testInsertBatchAsync() {
    // TODO Auto-generated method stub
    super.testInsertBatchAsync();
  }

  @Override
  public void testInsertAutoQueryAsyncFetchAsyncQueryAsync() {
    // TODO Auto-generated method stub
    super.testInsertAutoQueryAsyncFetchAsyncQueryAsync();
  }

  @Override
  public void testSimpleInheritance() {
    // TODO Auto-generated method stub
    super.testSimpleInheritance();
  }

  @Override
  public void testDoubleInheritance() {
    // TODO Auto-generated method stub
    super.testDoubleInheritance();
  }

  @Override
  public void testAbstractInheritance() {
    // TODO Auto-generated method stub
    super.testAbstractInheritance();
  }

  @Override
  public void testFilterInheritance() {
    // TODO Auto-generated method stub
    super.testFilterInheritance();
  }


  // SPECIFIC TESTS FOR GAE (transaction on one entity in a given group)
  public void testTransactionSave() {
    TransactionAccountFromModel accFrom = new TransactionAccountFromModel(1000L);
   
    accFrom.insert();
 
    try {
      accFrom.getPersistenceManager().beginTransaction();
      accFrom.amount-=100L;
      accFrom.save();
      accFrom.getPersistenceManager().commitTransaction();
    }catch(SienaException e){
      accFrom.getPersistenceManager().rollbackTransaction();
      fail();
    }finally{
      accFrom.getPersistenceManager().closeConnection();
    }
   
    TransactionAccountFrom accFromAfter = pm.getByKey(TransactionAccountFrom.class, accFrom.id);
    assertTrue(900L == accFromAfter.amount);

  }
 
  public void testTransactionSaveFailure() {
    TransactionAccountFromModel accFrom = new TransactionAccountFromModel(1000L);
    accFrom.insert();
 
    try {
      accFrom.getPersistenceManager().beginTransaction();
      accFrom.amount-=100L;
      accFrom.save();
      throw new SienaException("test");
    }catch(SienaException e){
      accFrom.getPersistenceManager().rollbackTransaction();
    }finally{
      accFrom.getPersistenceManager().closeConnection();
    }
   
    TransactionAccountFrom accFromAfter = pm.getByKey(TransactionAccountFrom.class, accFrom.id);
    assertTrue(1000L == accFromAfter.amount);
  }
 
 
  public void testStringListProperty() {
    List<StringListModel> bobs = new ArrayList<StringListModel>();
    for(int i=0; i<100; i++) {
      StringListModel bob = new StringListModel("bob"+i);
      final int nb = i;
      bob.friends = new ArrayList<String>(){{
        add("robert"+nb);
        add("john"+nb);
        add("brutus"+nb);
      }};
      bob.insert();
      bobs.add(bob);
    }
   
    StringListModel bobAfter = Model.all(StringListModel.class).filter("friends", "robert27").filter("friends", "john27").get();
    assertEquals(bobs.get(27), bobAfter);
  }
 
  public void testStringListProperty2() {
    List<StringListModel> bobs = new ArrayList<StringListModel>();
    for(int i=0; i<100; i++) {
      StringListModel bob = new StringListModel("bob"+i);
      final int nb = i;
      if(i == 27 || i == 65 || i == 89){
        bob.friends = new ArrayList<String>(){{
          add("robert"+nb);
          add("john_doe");
          add("brutus_smith");
        }};       
      }else {
        bob.friends = new ArrayList<String>(){{
          add("robert"+nb);
          add("john"+nb);
          add("brutus"+nb);
        }};
      }
      bob.insert();
      bobs.add(bob);
    }
   
    List<StringListModel> bobsAfter = Model.all(StringListModel.class).filter("friends", "brutus_smith").filter("friends", "john_doe").fetch();
    assertEquals(bobs.get(27), bobsAfter.get(0));
    assertEquals(bobs.get(65), bobsAfter.get(1));
    assertEquals(bobs.get(89), bobsAfter.get(2));
  }

}
TOP

Related Classes of siena.base.test.GaeModelTest

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.