brj         2005/09/18 05:06:46

  Modified:    src/test/org/apache/ojb/broker Tag: OJB_1_0_RELEASE
                        InheritanceMultipleTableTest.java
  Log:
  additional testcases for ojb-63
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.7.2.13  +95 -26    
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.7.2.12
  retrieving revision 1.7.2.13
  diff -u -r1.7.2.12 -r1.7.2.13
  --- InheritanceMultipleTableTest.java 22 Aug 2005 15:35:45 -0000      1.7.2.12
  +++ InheritanceMultipleTableTest.java 18 Sep 2005 12:06:46 -0000      1.7.2.13
  @@ -43,10 +43,11 @@
           }
   
           long timestamp = System.currentTimeMillis();
  -        Long id_2 = new Long(timestamp);
           String name = "testInheritancedObjectsInCollectionReferences_" + 
timestamp;
           // store company with Employee/Executive/Manager
  -        Company company = prepareTestDataWithCompany(id_2, name);
  +        Company company = prepareTestDataWithCompany(name);
  +        Long id_2 = company.getId();
  +        
           // add Shareholder too
           Shareholder shareholder = new Shareholder(id_2, name);
           shareholder.setShare(77);
  @@ -65,20 +66,20 @@
           Query query = QueryFactory.newQuery(Employee.class, crit);
           Collection result = broker.getCollectionByQuery(query);
           assertEquals(7, result.size());
  -        int empolyeeCount = 0;
  +        int employeeCount = 0;
           int executiveCount = 0;
           int managerCount = 0;
           int shareholderCount = 0;
           for(Iterator iterator = result.iterator(); iterator.hasNext();)
           {
               Object obj =  iterator.next();
  -            if(obj instanceof Employee) ++empolyeeCount;
  +            if(obj instanceof Employee) ++employeeCount;
               if(obj instanceof Executive) ++executiveCount;
               if(obj instanceof Manager) ++managerCount;
               if(obj instanceof Shareholder) ++shareholderCount;
           }
  -        assertEquals(7, empolyeeCount);
  -        assertEquals(5, executiveCount);
  +        assertEquals(7, employeeCount);
  +        assertEquals(6, executiveCount);
           assertEquals(4, managerCount);
           assertEquals(1, shareholderCount);
   
  @@ -90,19 +91,19 @@
           query = QueryFactory.newQuery(Manager.class, crit);
           result = broker.getCollectionByQuery(query);
           assertEquals(4, result.size());
  -        empolyeeCount = 0;
  +        employeeCount = 0;
           executiveCount = 0;
           managerCount = 0;
           shareholderCount = 0;
           for(Iterator iterator = result.iterator(); iterator.hasNext();)
           {
               Object obj =  iterator.next();
  -            if(obj instanceof Employee) ++empolyeeCount;
  +            if(obj instanceof Employee) ++employeeCount;
               if(obj instanceof Executive) ++executiveCount;
               if(obj instanceof Manager) ++managerCount;
               if(obj instanceof Shareholder) ++shareholderCount;
           }
  -        assertEquals(4, empolyeeCount);
  +        assertEquals(4, employeeCount);
           assertEquals(4, executiveCount);
           assertEquals(4, managerCount);
           assertEquals(1, shareholderCount);
  @@ -115,24 +116,82 @@
           query = QueryFactory.newQuery(Shareholder.class, crit);
           result = broker.getCollectionByQuery(query);
           assertEquals(1, result.size());
  -        empolyeeCount = 0;
  +        employeeCount = 0;
           executiveCount = 0;
           managerCount = 0;
           shareholderCount = 0;
           for(Iterator iterator = result.iterator(); iterator.hasNext();)
           {
               Object obj =  iterator.next();
  -            if(obj instanceof Employee) ++empolyeeCount;
  +            if(obj instanceof Employee) ++employeeCount;
               if(obj instanceof Executive) ++executiveCount;
               if(obj instanceof Manager) ++managerCount;
               if(obj instanceof Shareholder) ++shareholderCount;
           }
  -        assertEquals(1, empolyeeCount);
  +        assertEquals(1, employeeCount);
           assertEquals(1, executiveCount);
           assertEquals(1, managerCount);
           assertEquals(1, shareholderCount);
       }
   
  +    public void testQueryInheritancedObjectsById()
  +    {
  +        long timestamp = System.currentTimeMillis();
  +        String name = "testQueryInheritancedObjectsByPk_" + timestamp;
  +        Long id_2 = new Long(timestamp);
  +
  +        List insertedObjs = prepareForQueryTests(id_2, name); 
  +
  +        // add Shareholder 
  +        Shareholder shareholder = new Shareholder(id_2, name);
  +        shareholder.setShare(77);
  +        shareholder.setDepartment("none");
  +        AddressIF ad = new Address(name);
  +        shareholder.setAddress(ad);
  +
  +        broker.beginTransaction();
  +        broker.store(shareholder);
  +        broker.commitTransaction();
  +           
  +        broker.clearCache();
  +
  +        Employee emp1;
  +        Identity ident;
  +        Employee retrievedEmp;
  +
  +        // retrieve Manager by pk
  +        emp1 = (Employee) insertedObjs.get(0);
  +        ident = broker.serviceIdentity().buildIdentity(emp1);
  +        retrievedEmp = (Employee) broker.getObjectByIdentity(ident);
  +        assertNotNull(retrievedEmp);
  +        assertSame(Manager.class, retrievedEmp.getClass());
  +        assertEquals(emp1, retrievedEmp);
  +
  +        // retrieve Executive by pk
  +        emp1 = (Employee) insertedObjs.get(3);
  +        ident = broker.serviceIdentity().buildIdentity(emp1);
  +        retrievedEmp = (Employee) broker.getObjectByIdentity(ident);
  +        assertNotNull(retrievedEmp);
  +        assertSame(Executive.class, retrievedEmp.getClass());
  +        assertEquals(emp1, retrievedEmp);
  +        
  +        // retrieve Employee by pk
  +        emp1 = (Employee) insertedObjs.get(5);
  +        ident = broker.serviceIdentity().buildIdentity(emp1);
  +        retrievedEmp = (Employee) broker.getObjectByIdentity(ident);
  +        assertNotNull(retrievedEmp);
  +        assertSame(Employee.class, retrievedEmp.getClass());
  +        assertEquals(emp1, retrievedEmp);
  +
  +        // retrieve Shareholder by pk
  +        emp1 = shareholder;
  +        ident = broker.serviceIdentity().buildIdentity(emp1);
  +        retrievedEmp = (Employee) broker.getObjectByIdentity(ident);
  +        assertNotNull(retrievedEmp);
  +        assertSame(Shareholder.class, retrievedEmp.getClass());
  +        assertEquals(emp1, retrievedEmp);
  +    }
  +
       public void testWithoutJavaInheritance_1()
       {
           String name = "testWithoutJavaInheritance_1" + 
System.currentTimeMillis();
  @@ -251,9 +310,9 @@
           }
   
           long timestamp = System.currentTimeMillis();
  -        Long id_2 = new Long(timestamp);
           String name = "testInheritancedObjectsInCollectionReferences_" + 
timestamp;
  -        Company company = prepareTestDataWithCompany(id_2, name);
  +        Company company = prepareTestDataWithCompany(name);
  +        Long id_2 = company.getId();
   
           broker.clearCache();
           Criteria crit = new Criteria();
  @@ -290,12 +349,6 @@
               }
           }
           assertEquals(6, countEmployee);
  -        /*
  -        bug:
  -        expect that the real classes will be populated
  -        currently this does not happen, only objects of
  -        type Employee will be returned.
  -        */
           assertEquals(5, countExecutive);
           assertEquals(3, countManager);
       }
  @@ -618,8 +671,10 @@
           assertEquals("Expect the same number of objects as before update", 
3, result.size());
       }
   
  -    private void prepareForQueryTests(Long id_2, String name)
  +    private List prepareForQueryTests(Long id_2, String name)
       {
  +        List result = new ArrayList();
  +        
           Manager m_1 = new Manager(id_2, name + "_manager_1");
           Manager m_2 = new Manager(id_2, name + "_manager_2");
           Manager m_3 = new Manager(id_2, name + "_manager_3");
  @@ -634,6 +689,13 @@
           Address a_2 = new Address("cockroaches valley");
           em.setAddress(a_2);
   
  +        result.add(m_1);
  +        result.add(m_2);
  +        result.add(m_3);
  +        result.add(ex_1);
  +        result.add(ex_2);
  +        result.add(em);
  +
           broker.beginTransaction();
           broker.store(m_1);
           broker.store(m_2);
  @@ -642,9 +704,13 @@
           broker.store(ex_2);
           broker.store(em);
           broker.commitTransaction();
  +        
  +        return result;
       }
   
  -     private Company prepareTestDataWithCompany(Long id_2, String name) {
  +     private Company prepareTestDataWithCompany(String name)
  +    {
  +        Long id_2 = null;
                Manager m_1 = new Manager(id_2, name + "_manager_1");
           Manager m_2 = new Manager(id_2, name + "_manager_2");
           Manager m_3 = new Manager(id_2, name + "_manager_3");
  @@ -662,6 +728,9 @@
           employees.add(em);
   
           ArrayList executives = new ArrayList();
  +        executives.add(m_1);
  +        executives.add(m_2);
  +        executives.add(m_3);
           executives.add(ex_1);
           executives.add(ex_2);
           
  @@ -812,9 +881,10 @@
     public void testQuery_ReferenceOuterJoin()
       {
           long timestamp = System.currentTimeMillis();
  -        Long id_2 = new Long(timestamp);
           String name = "testQuery_ReferenceOuterJoin_" + timestamp;
  -        Company comp = prepareTestDataWithCompany(id_2, name);
  +        Company comp = prepareTestDataWithCompany(name);
  +        Long id_2 = comp.getId();
  +        
           
           // Store a dummy company
           Company dummyComp = new Company(null, name + "_dummy", 
Collections.EMPTY_LIST, Collections.EMPTY_LIST);
  @@ -1522,7 +1592,6 @@
                       .append(getId(), other.getId())
                       .append(getName(), other.getName())
                       .append(getWeight(), other.getWeight())
  -                    .append(getParent(), other.getParent())
                       .append(getFoods(), other.getFoods())
                       .isEquals();
           }
  
  
  

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

Reply via email to