Bug 315119 - To change several test framework classes to eliminate dynamic test case names
Summary: To change several test framework classes to eliminate dynamic test case names
Status: CLOSED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Eclipselink (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Edwin Tang CLA
QA Contact:
URL:
Whiteboard:
Keywords: test
Depends on:
Blocks:
 
Reported: 2010-05-31 13:20 EDT by Edwin Tang CLA
Modified: 2022-06-09 10:03 EDT (History)
0 users

See Also:


Attachments
patch file (5.77 KB, patch)
2010-05-31 14:39 EDT, Edwin Tang CLA
no flags Details | Diff
patch file (5.89 KB, patch)
2010-06-01 11:16 EDT, Edwin Tang CLA
no flags Details | Diff
patch file (9.11 KB, patch)
2010-06-01 13:25 EDT, Edwin Tang CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Edwin Tang CLA 2010-05-31 13:20:44 EDT
The following test framework classes have a constructor that use originalObject to build test name. 
org.eclipse.persistence.testing.framework.ReadObjectTest
org.eclipse.persistence.testing.framework.WriteObjectTest
org.eclipse.persistence.testing.framework.UnitOfWorkBasicUpdateObjectTest
org.eclipse.persistence.testing.framework.DeleteObjectTest

For example, in org.eclipse.persistence.testing.framework.ReadObjectTest, the code is like:

    public ReadObjectTest(Object originalObject) {
        setOriginalObject(originalObject);
        setName("ReadObjectTest(" + originalObject + ")");
        setDescription("The test reads the intended object, '" + originalObject + "', from the database and checks if it was read properly");
    }

Depending on how the toString() method is implemented in a domain class, some test names contain hash code value for the object, others contain id attribute for the object. So the test case names are dynamic, i.e., different from run to run. The dynamic test case names cause reporting issues.
Comment 1 Edwin Tang CLA 2010-05-31 14:39:59 EDT
Created attachment 170579 [details]
patch file
Comment 2 Edwin Tang CLA 2010-05-31 14:48:40 EDT
Changed the line for setting test name in org.eclipse.persistence.testing.framework.ReadObjectTest
from:
        setName("ReadObjectTest(" + originalObject + ")");
to:
        setName("ReadObjectTest(" + originalObject.getClass() + ")");

Similar change is made in the following classes:
org.eclipse.persistence.testing.framework.WriteObjectTest
org.eclipse.persistence.testing.framework.InsertObjectTest
org.eclipse.persistence.testing.framework.UnitOfWorkBasicInsertObjectTest
org.eclipse.persistence.testing.framework.UnitOfWorkBasicUpdateObjectTest
org.eclipse.persistence.testing.framework.DeleteObjectTest
org.eclipse.persistence.testing.tests.types.WriteTypeObjectTest
Comment 3 Edwin Tang CLA 2010-06-01 11:16:15 EDT
Created attachment 170642 [details]
patch file

Added a null check in org.eclipse.persistence.testing.framework.ReadObjectTest like:
        if (originalObject == null) {
            setName("ReadObjectTest(null)");
        }
        else {
            setName("ReadObjectTest(" + originalObject.getClass() + ")");
        }
Comment 4 Edwin Tang CLA 2010-06-01 13:25:53 EDT
Created attachment 170666 [details]
patch file

Similar changes in following classes as well:
org.eclipse.persistence.testing.tests.aggregate.DescriptorRefreshCacheTest
org.eclipse.persistence.testing.tests.writing.UpdateDeepOwnershipTest
org.eclipse.persistence.testing.tests.queries.inmemory.CacheHitTest
org.eclipse.persistence.testing.tests.optimisticlocking.OptimisticLockingInsertTest
Comment 5 Edwin Tang CLA 2010-06-01 13:33:07 EDT
Checked the patch into 2.1.0

Tested with Core LRG

Code reviewed by: James Sutherland
Comment 6 Eclipse Webmaster CLA 2022-06-09 10:03:11 EDT
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink