arminw      2005/10/29 05:00:25

  Modified:    src/test/org/apache/ojb/broker
                        InheritanceMultipleTableTest.java
  Log:
  add new test to show problem with inheritance in maxDB, minor improvement
  
  Revision  Changes    Path
  1.22      +60 -19    
db-ojb/src/test/org/apache/ojb/broker/InheritanceMultipleTableTest.java
  
  Index: InheritanceMultipleTableTest.java
  ===================================================================
  RCS file: 
/home/cvs/db-ojb/src/test/org/apache/ojb/broker/InheritanceMultipleTableTest.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- InheritanceMultipleTableTest.java 22 Oct 2005 20:05:26 -0000      1.21
  +++ InheritanceMultipleTableTest.java 29 Oct 2005 12:00:25 -0000      1.22
  @@ -40,6 +40,49 @@
           broker.serviceBatchManager().setBatchMode(true);
       }
   
  +    public void testLookupByIdentity()
  +    {
  +        long timestamp = System.currentTimeMillis();
  +        Long id_2 = new Long(timestamp);
  +        String name = "testLookupByIdentity_" + timestamp;
  +        Employee em1 = new Employee(id_2, "employee_" + name);
  +        Executive ex1 = new Executive(id_2, "executive_" + name, 
"department_1", null);
  +        Executive ex2 = new Executive(id_2, "executive_" + name, 
"department_2", null);
  +        ArrayList list = new ArrayList();
  +        list.add(ex1);
  +        list.add(ex2);
  +        Manager m1 = new Manager(id_2, "manager_" + name);
  +        m1.setExecutives(list);
  +
  +        broker.beginTransaction();
  +        broker.store(em1);
  +        broker.store(m1);
  +        broker.commitTransaction();
  +
  +        Identity m1_oid = broker.serviceIdentity().buildIdentity(m1);
  +        Identity ex1_oid = broker.serviceIdentity().buildIdentity(ex1);
  +        Identity em1_oid = broker.serviceIdentity().buildIdentity(em1);
  +
  +        broker.clearCache();
  +
  +        Employee newEm1 = (Employee) broker.getObjectByIdentity(em1_oid);
  +        Executive newEx1 = (Executive) broker.getObjectByIdentity(ex1_oid);
  +        Manager newM1 = (Manager) broker.getObjectByIdentity(m1_oid);
  +
  +        assertNotNull(newEm1);
  +        assertNotNull(newEx1);
  +        assertNotNull(newM1);
  +        assertEquals(em1.getId(), newEm1.getId());
  +        assertEquals(em1.getId_2(), newEm1.getId_2());
  +        assertEquals(2, newM1.getExecutives().size());
  +
  +        assertEquals(m1.getId(), newM1.getId());
  +        assertEquals(m1.getId_2(), newM1.getId_2());
  +
  +        assertEquals(ex1.getId(), newEx1.getId());
  +        assertEquals(ex1.getId_2(), newEx1.getId_2());
  +    }
  +
       public void testQueryInheritancedObjects()
       {
           if(ojbSkipKnownIssueProblem("Classes mapped to multiple joined 
tables will always be instantiated " +
  @@ -931,7 +974,7 @@
       {
           long timestamp = System.currentTimeMillis();
           String name = "testQuery_ReferenceOuterJoin_" + timestamp;
  -        Company company = prepareTestDataWithCompany(name);
  +        prepareTestDataWithCompany(name);
           //Long id_2 = company.getId();
   
           // Store a dummy company
  @@ -946,7 +989,8 @@
           crit.addLike("name", name + "%");
           QueryByCriteria query = QueryFactory.newQuery(Company.class, crit, 
true);
           Collection result = broker.getCollectionByQuery(query);
  -        assertEquals(2, result.size());                                      
                        // retrieve both companies
  +        // retrieve both companies
  +        assertEquals(2, result.size());
   
           crit = new Criteria();
           crit.addLike("name", name + "%");
  @@ -961,12 +1005,9 @@
           query = QueryFactory.newQuery(Company.class, crit, true);
           query.addOrderByAscending("id");
           query.setPathOuterJoin("executives");
  -
  -//        SqlGenerator sqlg = broker.serviceSqlGenerator();
  -//        String sql = sqlg.getPreparedSelectStatement(query, 
broker.getClassDescriptor(Company.class));
  -
           result = broker.getCollectionByQuery(query);
  -        assertEquals(2, result.size());                                      
                        // should retrieve both companies
  +        // should retrieve both companies
  +        assertEquals(2, result.size());
        }
   
       public void testInsertQuery()
  @@ -988,9 +1029,9 @@
           broker.store(m1);
           broker.commitTransaction();
   
  -        Identity m1_oid = new Identity(m1, broker);
  -        Identity ex1_oid = new Identity(ex1, broker);
  -        Identity em1_oid = new Identity(em1, broker);
  +        Identity m1_oid = broker.serviceIdentity().buildIdentity(m1);
  +        Identity ex1_oid = broker.serviceIdentity().buildIdentity(ex1);
  +        Identity em1_oid = broker.serviceIdentity().buildIdentity(em1);
   
           broker.clearCache();
   
  @@ -1026,7 +1067,7 @@
       {
           long timestamp = System.currentTimeMillis();
           Long id_2 = new Long(timestamp);
  -        String name = "testUpdate" + timestamp;
  +        String name = "testUpdate_" + timestamp;
           Employee em1 = new Employee(id_2, "employee_" + name);
           Executive ex1 = new Executive(id_2, "executive_" + name, 
"department_1", null);
           Executive ex2 = new Executive(id_2, "executive_" + name, 
"department_2", null);
  @@ -1041,9 +1082,9 @@
           broker.store(m1);
           broker.commitTransaction();
   
  -        Identity m1_oid = new Identity(m1, broker);
  -        Identity ex1_oid = new Identity(ex1, broker);
  -        Identity em1_oid = new Identity(em1, broker);
  +        Identity m1_oid = broker.serviceIdentity().buildIdentity(m1);
  +        Identity ex1_oid = broker.serviceIdentity().buildIdentity(ex1);
  +        Identity em1_oid = broker.serviceIdentity().buildIdentity(em1);
   
           broker.clearCache();
   
  @@ -1080,7 +1121,7 @@
       {
           long timestamp = System.currentTimeMillis();
           Long id_2 = new Long(timestamp);
  -        String name = "testUpdate" + timestamp;
  +        String name = "testDelete_" + timestamp;
           Employee em1 = new Employee(id_2, "employee_" + name);
           Executive ex1 = new Executive(id_2, "executive_" + name, 
"department_1", null);
           Executive ex2 = new Executive(id_2, "executive_" + name, 
"department_2", null);
  @@ -1095,9 +1136,9 @@
           broker.store(m1);
           broker.commitTransaction();
   
  -        Identity m1_oid = new Identity(m1, broker);
  -        Identity ex1_oid = new Identity(ex1, broker);
  -        Identity em1_oid = new Identity(em1, broker);
  +        Identity m1_oid = broker.serviceIdentity().buildIdentity(m1);
  +        Identity ex1_oid = broker.serviceIdentity().buildIdentity(ex1);
  +        Identity em1_oid = broker.serviceIdentity().buildIdentity(em1);
   
           broker.clearCache();
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to