| /* |
| * Copyright (c) 1998, 2021 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 v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0, |
| * or the Eclipse Distribution License v. 1.0 which is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause |
| */ |
| |
| // 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(99); |
| primaryKey2 = new Vector(); |
| primaryKey2.addElement(88); |
| |
| primaryKeys.addElement(primaryKey1); |
| primaryKeys.addElement(primaryKey2); |
| |
| suite.addTest(new MultipleRegisterTest(identityMap, primaryKeys, employees)); |
| suite.addTest(new MultipleDeleteFromIdentityMapTest(identityMap, primaryKeys, employees, primaryKeys)); |
| } |
| |
| @Override |
| 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()); |
| // Bug 522635 |
| addTest(new GetAllFromIdentityMapTest()); |
| } |
| |
| 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; |
| } |
| } |