/******************************************************************************* | |
* Copyright (c) 1998, 2013 Oracle and/or its affiliates. All rights reserved. | |
* This program and the accompanying materials are made available under the | |
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 | |
* which accompanies this distribution. | |
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html | |
* and the Eclipse Distribution License is available at | |
* http://www.eclipse.org/org/documents/edl-v10.php. | |
* | |
* Contributors: | |
* Oracle - initial API and implementation from Oracle TopLink | |
******************************************************************************/ | |
package org.eclipse.persistence.testing.tests.identitymaps; | |
import java.util.*; | |
import org.eclipse.persistence.internal.identitymaps.*; | |
import org.eclipse.persistence.testing.framework.*; | |
import org.eclipse.persistence.testing.models.employee.domain.*; | |
/** | |
* Test the identity maps and cache hits. | |
*/ | |
public class IdentityMapTestSuite extends TestSuite { | |
public IdentityMapTestSuite() { | |
setDescription("This suite tests the functionality of the identity maps."); | |
} | |
protected void addMultipleIdentityTests(TestSuite suite, IdentityMap identityMap) { | |
Employee employee1 = new Employee(); | |
Employee employee2 = new Employee(); | |
Vector primaryKeys = new Vector(); | |
Vector primaryKey1; | |
Vector primaryKey2; | |
Vector employees = new Vector(); | |
employee1.setFirstName("Wayne"); | |
employee1.setLastName("Gretzky"); | |
employee2.setFirstName("Eric"); | |
employee2.setLastName("Lindros"); | |
employees.addElement(employee1); | |
employees.addElement(employee2); | |
primaryKey1 = new Vector(); | |
primaryKey1.addElement(new Integer(99)); | |
primaryKey2 = new Vector(); | |
primaryKey2.addElement(new Integer(88)); | |
primaryKeys.addElement(primaryKey1); | |
primaryKeys.addElement(primaryKey2); | |
suite.addTest(new MultipleRegisterTest(identityMap, primaryKeys, employees)); | |
suite.addTest(new MultipleDeleteFromIdentityMapTest(identityMap, primaryKeys, employees, primaryKeys)); | |
} | |
public void addTests() { | |
addTest(getFullIdentityMapSuite()); | |
addTest(getNoIdentityMapSuite()); | |
addTest(getCacheIdentityMapSuite()); | |
addTest(getSoftCacheWeakIdentityMapSuite()); | |
addTest(getHardCacheWeakIdentityMapSuite()); | |
addTest(getWeakIdentityMapSuite()); | |
addTest(getSoftIdentityMapSuite()); | |
addTest(getDeleteWithGarbageCollectionTestSuite(new CacheIdentityMap(100, null, null, false))); | |
addTest(new GetSizeRecurseOptionTest()); | |
addTest(new ClearLastAccessedIdentityMapTest()); | |
addTest(new InitializeIdentityMapByDescriptorJavaClassTest()); | |
// Bug 5840635 | |
addTest(new CleanupCacheKeyCorrectnessTest()); | |
addTest(new TriggerValueHoldersSelfReferencingOneToOneTest()); | |
} | |
private TestSuite getCacheIdentityMapSuite() { | |
TestSuite suite = new TestSuite(); | |
suite.setName("Cache IdentityMap Test Suite"); | |
suite.setDescription("This suite tests the functionality of the CacheIdentityMap"); | |
suite.addTest(new RegisterInIdentityMapTest(CacheIdentityMap.class)); | |
suite.addTest(new DeleteFromIdentityMapTest(CacheIdentityMap.class)); | |
suite.addTest(new SetWriteLockInIdentityMapTest(CacheIdentityMap.class)); | |
return suite; | |
} | |
private TestSuite getFullIdentityMapSuite() { | |
TestSuite suite = new TestSuite(); | |
suite.setName("Full IdentityMap Test Suite"); | |
suite.setDescription("This suite tests the functionality of the FullIdentityMap"); | |
suite.addTest(new RegisterInIdentityMapTest(FullIdentityMap.class)); | |
suite.addTest(new DeleteFromIdentityMapTest(FullIdentityMap.class)); | |
addMultipleIdentityTests(suite, new FullIdentityMap(100, null, null, false)); | |
suite.addTest(new RemoveFromIdentityMapReturnTest()); | |
suite.addTest(new SetWriteLockInIdentityMapTest(FullIdentityMap.class)); | |
return suite; | |
} | |
private TestSuite getHardCacheWeakIdentityMapSuite() { | |
TestSuite suite = new TestSuite(); | |
suite.setName("Hard Cache Weak IdentityMap Test Suite"); | |
suite.setDescription("This suite tests the functionality of the HardCacheWeakIdentityMap"); | |
suite.addTest(new RegisterInIdentityMapTest(HardCacheWeakIdentityMap.class)); | |
suite.addTest(new DeleteFromIdentityMapTest(HardCacheWeakIdentityMap.class)); | |
addMultipleIdentityTests(suite, new HardCacheWeakIdentityMap(100, null, null, false)); | |
suite.addTest(new SetWriteLockInIdentityMapTest(HardCacheWeakIdentityMap.class)); | |
suite.addTest(new HardCacheWeakIdentityMapTest()); | |
return suite; | |
} | |
private TestSuite getNoIdentityMapSuite() { | |
TestSuite suite = new TestSuite(); | |
suite.setName("No IdentityMap Test Suite"); | |
suite.setDescription("This suite tests the functionality of the NoIdentityMap"); | |
suite.addTest(new RegisterInIdentityMapTest(NoIdentityMap.class)); | |
suite.addTest(new DeleteFromIdentityMapTest(NoIdentityMap.class)); | |
suite.addTest(new SetWriteLockInIdentityMapTest(NoIdentityMap.class)); | |
return suite; | |
} | |
private TestSuite getSoftCacheWeakIdentityMapSuite() { | |
TestSuite suite = new TestSuite(); | |
suite.setName("Soft Cache Weak IdentityMap Test Suite"); | |
suite.setDescription("This suite tests the functionality of the SoftCacheWeakIdentityMap"); | |
suite.addTest(new RegisterInIdentityMapTest(SoftCacheWeakIdentityMap.class)); | |
suite.addTest(new DeleteFromIdentityMapTest(SoftCacheWeakIdentityMap.class)); | |
addMultipleIdentityTests(suite, new SoftCacheWeakIdentityMap(100, null, null, false)); | |
suite.addTest(new SetWriteLockInIdentityMapTest(SoftCacheWeakIdentityMap.class)); | |
suite.addTest(new ReadSoftCacheWeakIdentityMapTest(SoftCacheWeakIdentityMap.class)); | |
return suite; | |
} | |
private TestSuite getWeakIdentityMapSuite() { | |
TestSuite suite = new TestSuite(); | |
suite.setName("Weak IdentityMap Test Suite"); | |
suite.setDescription("This suite tests the functionality of the WeakIdentityMap"); | |
suite.addTest(new RegisterInIdentityMapTest(WeakIdentityMap.class)); | |
suite.addTest(new DeleteFromIdentityMapTest(WeakIdentityMap.class)); | |
addMultipleIdentityTests(suite, new WeakIdentityMap(100, null, null, false)); | |
suite.addTest(new SetWriteLockInIdentityMapTest(WeakIdentityMap.class)); | |
suite.addTest(new ReadWeakIdentityMapTest(WeakIdentityMap.class)); | |
//bug 3095146 | |
suite.addTest(new CreateCacheKeyWeakIdentityMapTest()); | |
suite.addTest(new InsertWeakIdentityMapTest()); | |
suite.addTest(new IdentityWeakHashMapConcurrentModTest()); | |
return suite; | |
} | |
private TestSuite getSoftIdentityMapSuite() { | |
TestSuite suite = new TestSuite(); | |
suite.setName("Soft IdentityMap Test Suite"); | |
suite.setDescription("This suite tests the functionality of the SoftIdentityMap"); | |
suite.addTest(new RegisterInIdentityMapTest(SoftIdentityMap.class)); | |
suite.addTest(new DeleteFromIdentityMapTest(SoftIdentityMap.class)); | |
addMultipleIdentityTests(suite, new SoftIdentityMap(100, null, null, false)); | |
suite.addTest(new SetWriteLockInIdentityMapTest(SoftIdentityMap.class)); | |
return suite; | |
} | |
private TestSuite getDeleteWithGarbageCollectionTestSuite(CacheIdentityMap cache) { | |
TestSuite suite = new TestSuite(); | |
suite.setName("DeleteWithGarbageCollectionTestSuite"); | |
suite.setDescription("This suite tests for an error condition in which removal of an object which is garbage collected is attempted."); | |
suite.addTest(new DeleteWithGarbageCollectionTest(cache)); | |
return suite; | |
} | |
} |