I have since realized that this problem has nothing to do with DBUnit. I was
trying to test an inheritance hierarchy with openJPA and that is failing. 
I have added to a separate post that already mentions a similar issue with
version 1.1.0


devu213 wrote:
> 
> I'm really having problems trying to make openJPA work with DBUnit. Here
> is a snippet of my test class. The moment I have a situation where DBUnit
> does some sort of initializing operations on the database, openJPA starts
> behaving really strangely. Specifically the second test method which uses
> inheritance fails to fire a query for the bae class. 
> 
> The moment I stop using DBUnit, everything starts working fine and openJPA
> fires the queries for the base class and derived class in the proper
> order. 
> 
> I've tried using two separate connections for DBUnit and openJPA and then
> finally passing a connection from openJPA to DBUnit. 
> 
> I really don't understand what is going wrong....Can someone please give
> me some pointers?
> 
> 
> public class BaseDAOTest extends  BaseDBUnitTestCase {
>               
>       @Override
>       protected DatabaseOperation getSetUpOperation() {
>               return DatabaseOperation.DELETE;
>                          //return DatabaseOperation.NONE;   //This
> works....
> 
>       }
> 
>       @Override
>       protected IDataSet getDataSet() throws Exception {
>               return new FlatXmlDataSet(
>                       
> ClassLoader.getSystemResourceAsStream("BaseDAOTestClean.xml"));
>       }
>       
>       protected IDataSet getDataSet(String datasetName) throws Exception {
>               return new FlatXmlDataSet(
>                                                       
> ClassLoader.getSystemResourceAsStream(datasetName));    
>       }
>       
>       
>       public void testCreate() {
>               System.out.println("testCreate");
>               EntityManager manager = null;
>               Customer customer = new Customer(new Double(123), new 
> Double(123), 
>                               new String("DK1"), new Date(), new Date(),
>                               new Date(), "KMD", new Date()); 
>               Customer anotherCustomer = new Customer(new Double(124), new
> Double(124), 
>                               new String("DK2"), new Date(), new Date(),
>                               new Date(), "ATP", new Date());
>               try {   
>                       //Invocations to the processing logic
>                       manager = PersistenceBootstrapper.getEntityManager();
>                       EntityTransaction tx = manager.getTransaction();
>                       tx.begin();
>                       BaseDAO.create(manager, customer);
>                       BaseDAO.create(manager, anotherCustomer);
>                       tx.commit();
>                       
>                       //Do the asserts... Result verification.
>                       ITable addedData = getConnection().createQueryTable(
>                                               "customer", 
>                                               "select pbs_no, cvr_no, 
> postal_cd," +
>                                               " update_by from customer 
> where" +
>                                               " pbs_no in (123, 124) order by 
> pbs_no");
>                       Assertion.assertEquals(getDataSet("BaseDAOTest1.xml"), 
>                                                                               
>                 new DefaultDataSet(addedData));
>               } catch (Exception e) {
>                       e.printStackTrace();
>                       assertEquals("Failed", "Normal flow failed for 
> BaseDAOTest", 
>                                                       e.getMessage());
>               } finally {
>                       //Do this instead of closing the manager directly on 
> your own.
>                       manager.close();
>               }
>       }
>       
> 
>       public void testCreateInheritance() {
>               System.out.println("testInheritacne");
>               //EntityManagerFactory factory =
> Persistence.createEntityManagerFactory("refimpl-nocontainer");
>               EntityManager manager = null;
>               Creditor creditor = new Creditor(new Double(125), new 
> Double(125), 
>                               "DK3", new Date(), new Date(), new Date(), 
> "PROG", new Date());         
>               try {
>                       //Note the new dataset
>                       IDataSet expectedDataset = 
> getDataSet("BaseDAOTest2.xml");
>                       
>                       //Invocations to the processing logic
>                       manager = PersistenceBootstrapper.getEntityManager();
>                       EntityTransaction transaction = 
> manager.getTransaction();
>                       transaction.begin();
>                       BaseDAO.create(manager, creditor);
>                       transaction.commit();
>                       
>                       //Do the asserts... Result verification.
>                       //Note the way the actual dataset is created.
>                       QueryDataSet actual = new QueryDataSet(getConnection());
>                       actual.addTable("customer", "select pbs_no, cvr_no, " +
>                                       "postal_cd, update_by from customer 
> where" +
>                                       " pbs_no = 125");
>                       actual.addTable("creditor", "select pbs_no, cred_type, 
> " +
>                                       "billing_type, update_by from creditor 
> where" +
>                                       " pbs_no = 125");
>                       
>                       //compare with expected dataset.
>                       Assertion.assertEquals(actual, expectedDataset);
>               } catch (Exception e) {
>                       e.printStackTrace();
>                       assertEquals("Failed", "Normal flow failed for 
> BaseDAOTest", 
>                                                                               
>                                                 e.getMessage());
>               } finally {
>                       //Do this instead of closing the manager directly on 
> your own.
>                       //PersistenceBootstrapper.closeManager();
>                       manager.close();
>               }
>       }
>       
> 
> 
>       public void testCreateManyToOne() {
>               System.out.println("manytoone");
>               EntityManager manager = null;
>               
>               Creditor creditor = new Creditor(new Double(126), new 
> Double(126), 
>                               "DK3", new Date(), new Date(), new Date(), 
> "PROG", new Date());
>               
>               Country creditorsCountry = new Country("DK", "Denmark", "PROG");
>               
>                               
>               try {
>                       
>                       IDataSet dataset = new FlatXmlDataSet(
>                       
> ClassLoader.getSystemResourceAsStream("BaseDAOTestClean.xml")); 
>                       
>                       //Invocations to the processing logic
>                       manager = PersistenceBootstrapper.getEntityManager();
>                       EntityTransaction transaction = 
> manager.getTransaction();
>                       transaction.begin();
>                       BaseDAO.create(manager, creditor);
>                       creditor.setCountry(creditorsCountry);
>                       transaction.commit();
>                       
>                       //Do the asserts... Result verification.
>                       QueryDataSet actual = new QueryDataSet(getConnection());
>                       actual.addTable("customer", "select pbs_no, cvr_no,  " +
>                                       "postal_cd, update_by from customer 
> where" +
>                                       " pbs_no = 125");
>                       actual.addTable("creditor", "select pbs_no, cred_type, 
> " +
>                                       "billing_type, update_by from creditor 
> where" +
>                                       " pbs_no = 125");
>                       actual.addTable("country_master", "select country_cd, 
> country, " +
>                                       "update_by from country_master where 
> country_cd = \'DK\'");
>                       
>                       Assertion.assertEquals(actual, dataset);
>               } catch (Exception e) {
>                       e.printStackTrace();
>                       assertEquals("Failed", "Normal flow failed for 
> BaseDAOTest", 
>                                                       e.getMessage());
>               } finally {
>                       //Do this instead of closing the manager directly on 
> your own.
>                       //PersistenceBootstrapper.closeManager();
>                       manager.close();
>               }
>       }
> }
>  http://n2.nabble.com/file/n723864/src.zip src.zip 
> 

-- 
View this message in context: 
http://n2.nabble.com/openJPA-not-working-with-DBUnit....-tp723864p781444.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.

Reply via email to