blob: 5fe2de517978134a6b7907d86c14a6b71686efee [file] [log] [blame]
/*
* 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:
// 06/16/2009-2.0 Guy Pelletier
// - 277039: JPA 2.0 Cache Usage Settings
// 07/16/2009-2.0 Guy Pelletier
// - 277039: JPA 2.0 Cache Usage Settings
// 06/09/2010-2.0.3 Guy Pelletier
// - 313401: shared-cache-mode defaults to NONE when the element value is unrecognized
package org.eclipse.persistence.testing.tests.jpa.cacheable;
import junit.framework.*;
import jakarta.persistence.EntityManager;
import org.eclipse.persistence.sessions.server.ServerSession;
import org.eclipse.persistence.testing.framework.junit.JUnitTestCase;
import org.eclipse.persistence.testing.models.jpa.cacheable.CacheableTableCreator;
/*
* The test is testing against "MulitPU-4" persistence unit which has <shared-cache-mode> to be DISABLE_SELECTIVE
*/
public class CacheableModelJunitTestDisableSelective extends CacheableModelJunitTest {
public CacheableModelJunitTestDisableSelective() {
super();
}
public CacheableModelJunitTestDisableSelective(String name) {
super(name);
setPuName("MulitPU-4");
}
/**
* Convenience method.
*/
@Override
public void clearDSCache() {
clearCache("MulitPU-4");
}
/**
* Convenience method.
*/
@Override
public void closeEM(EntityManager em) {
if (em.isOpen()) {
closeEntityManager(em);
}
}
/**
* Convenience method.
*/
@Override
public EntityManager createDSEntityManager() {
return createEntityManager("MulitPU-4");
}
/**
* Convenience method.
*/
@Override
public ServerSession getDSServerSession() {
return getPUServerSession("MulitPU-4");
}
/**
* Convenience method.
*/
@Override
public ServerSession getPUServerSession(String puName) {
return JUnitTestCase.getServerSession("MulitPU-4");
}
public static Test suite() {
TestSuite suite = new TestSuite();
suite.setName("CacheableModelJunitTestDisableSelective");
if (! JUnitTestCase.isJPA10()) {
suite.addTest(new CacheableModelJunitTestDisableSelective("testSetup"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testCachingOnDISABLE_SELECTIVE"));
// Test cache retrieve mode of BYPASS and USE through the EM.
suite.addTest(new CacheableModelJunitTestDisableSelective("testCreateEntities"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testFindWithEMProperties"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testFindWithFindProperties"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testRefreshWithEMProperties"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testRefreshWithRefreshProperties"));
// Test various usage scenarios ..
suite.addTest(new CacheableModelJunitTestDisableSelective("testRetrieveBYPASSStoreUSE1"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testRetrieveBYPASSStoreUSE2"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testRetrieveUSEStoreBYPASS1"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testRetrieveUSEStoreBYPASS2"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testRetrieveBYPASSStoreBYPASS1"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testRetrieveBYPASSStoreBYPASS2"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testMultipleEMQueries"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testEMPropertiesOnCommit1"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testEMPropertiesOnCommit2"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testInheritanceCacheable"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testLoadMixedCacheTree"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testIsolatedIsolation"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testProtectedIsolation"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testProtectedCaching"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testReadOnlyTree"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testUpdateForceProtectedBasic"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testUpdateForceProtectedOneToOne"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testUpdateProtectedBasic"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testUpdateProtectedOneToMany"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testProtectedRelationshipsMetadata"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testForceProtectedFromEmbeddable"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testEmbeddableProtectedCaching"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testEmbeddableProtectedReadOnly"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testUpdateProtectedManyToOne"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testUpdateProtectedManyToMany"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testUpdateProtectedElementCollection"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testIsolationBeforeEarlyTxBegin"));
// Bug 340074
suite.addTest(new CacheableModelJunitTestDisableSelective("testFindWithLegacyFindProperties"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testFindWithEMLegacyProperties"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testMergeNonCachedWithRelationship"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testIndirectCollectionRefreshBehavior"));
suite.addTest(new CacheableModelJunitTestDisableSelective("testDerivedIDProtectedRead"));
}
return suite;
}
/**
* The setup is done as a test, both to record its failure, and to allow execution in the server.
*/
@Override
public void testSetup() {
new CacheableTableCreator().replaceTables(JUnitTestCase.getServerSession("MulitPU-4"));
clearDSCache();
}
}