Package com.avaje.ebeaninternal.server.query

Source Code of com.avaje.ebeaninternal.server.query.TestFutureRowCountErrorHandling

package com.avaje.ebeaninternal.server.query;

import java.util.concurrent.ExecutionException;

import org.junit.Assert;
import org.junit.Test;

import com.avaje.ebean.BaseTestCase;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.EbeanServer;
import com.avaje.ebean.FutureIds;
import com.avaje.ebean.FutureList;
import com.avaje.ebean.FutureRowCount;
import com.avaje.ebean.Query;
import com.avaje.ebean.Transaction;
import com.avaje.tests.model.basic.Customer;
import com.avaje.tests.model.basic.ResetBasicData;

public class TestFutureRowCountErrorHandling  extends BaseTestCase {
 
  @Test
  public void testFutureRowCount() throws InterruptedException {
   
    ResetBasicData.reset();
   
    EbeanServer server = Ebean.getServer(null);
   
    Query<Customer> query = server.createQuery(Customer.class)
      .where().eq("doesNotExist", "this will fail")
      .query();
     
    FutureRowCount<Customer> futureRowCount = server.findFutureRowCount(query, null);
   
    QueryFutureRowCount<Customer> internalRowCount = (QueryFutureRowCount<Customer>)futureRowCount;
    Transaction t = internalRowCount.getTransaction();
   
    try {
      futureRowCount.get();
      Assert.assertTrue("never get here as the SQL is invalid",false);
     
    } catch (ExecutionException e) {
      // Confirm the Transaction has been rolled back
      Assert.assertFalse("Underlying transaction was rolled back cleanly", t.isActive());
    }
       
  }
 
  @Test
  public void testFutureIds() throws InterruptedException {
   
    ResetBasicData.reset();
   
    EbeanServer server = Ebean.getServer(null);
   
    Query<Customer> query = server.createQuery(Customer.class)
      .where().eq("doesNotExist", "this will fail")
      .query();
     
    FutureIds<Customer> futureIds = server.findFutureIds(query, null);
   
    QueryFutureIds<Customer> internalFuture = (QueryFutureIds<Customer>)futureIds;
    Transaction t = internalFuture.getTransaction();
   
    try {
      internalFuture.get();
      Assert.assertTrue("never get here as the SQL is invalid",false);
     
    } catch (ExecutionException e) {
      // Confirm the Transaction has been rolled back
      Assert.assertFalse("Underlying transaction was rolled back cleanly", t.isActive());
    }
       
  }

 
  @Test
  public void testFutureList() throws InterruptedException {
   
    ResetBasicData.reset();
   
    EbeanServer server = Ebean.getServer(null);
   
    Query<Customer> query = server.createQuery(Customer.class)
      .where().eq("doesNotExist", "this will fail")
      .query();
     
    FutureList<Customer> futureList = server.findFutureList(query, null);
   
    QueryFutureList<Customer> internalFuture = (QueryFutureList<Customer>)futureList;
    Transaction t = internalFuture.getTransaction();
   
    try {
      internalFuture.get();
      Assert.assertTrue("never get here as the SQL is invalid",false);
     
    } catch (ExecutionException e) {
      // Confirm the Transaction has been rolled back
      Assert.assertFalse("Underlying transaction was rolled back cleanly", t.isActive());
    }
       
  }
}
TOP

Related Classes of com.avaje.ebeaninternal.server.query.TestFutureRowCountErrorHandling

TOP
Copyright © 2015 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.