| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| <<<<<<< Updated upstream |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| ======= |
| * |
| * https://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| >>>>>>> Stashed changes |
| * limitations under the License. |
| */ |
| package org.apache.jdo.tck.api.persistencemanagerfactory.config; |
| |
| import java.util.HashMap; |
| import java.util.Map; |
| import java.util.Properties; |
| import javax.jdo.Constants; |
| import javax.jdo.JDOHelper; |
| import javax.jdo.PersistenceManager; |
| import javax.jdo.PersistenceManagerFactory; |
| import javax.jdo.Transaction; |
| import org.apache.jdo.tck.JDO_Test; |
| import org.apache.jdo.tck.pc.mylib.PCPoint; |
| import org.apache.jdo.tck.util.BatchTestRunner; |
| |
| /** |
| * <B>Title:</B>Close of PersistenceManagerFactory <br> |
| * <B>Keywords:</B> persistencemanagerfactory, jdoconfig.xml <br> |
| * <B>Assertion IDs:</B> A8.7-1 <br> |
| * <B>Assertion Description: </B> The application provides a resource named META-INF/persistence.xml |
| * and optionally META-INF/services/javax.persistence.EntityManagerFactory which contain |
| * configuration information |
| */ |
| public class Persistence extends JDO_Test { |
| |
| /** Creates a new instance of Jdoconfig */ |
| public Persistence() {} |
| /** */ |
| private static final String ASSERTION_FAILED = "Assertion A11.1.2-1 failed: "; |
| // Do not use superclass pmf, pm |
| private PersistenceManagerFactory pmf = null; |
| private PersistenceManager pm = null; |
| |
| /** |
| * The <code>main</code> is called when the class is directly executed from the command line. |
| * |
| * @param args The arguments passed to the program. |
| */ |
| public static void main(String[] args) { |
| BatchTestRunner.run(Persistence.class); |
| } |
| |
| /** */ |
| public void testGetPMFfromNamedPU() { |
| String name = "PUNamed_" + IDENTITYTYPE + "0"; |
| pmf = JDOHelper.getPersistenceManagerFactory(name); |
| assertEquals("Incorrect value for RestoreValues", false, pmf.getRestoreValues()); |
| runTest(name); |
| } |
| |
| /** */ |
| public void testGetPMFfromNamedPUWithNullOverrides() { |
| String name = "PUNamed_" + IDENTITYTYPE + "0"; |
| pmf = JDOHelper.getPersistenceManagerFactory(null, name); |
| assertEquals("Incorrect value for RestoreValues", false, pmf.getRestoreValues()); |
| runTest(name); |
| } |
| |
| /** */ |
| public void testGetPMFfromNamedPUWithEmptyOverrides() { |
| String name = "PUNamed_" + IDENTITYTYPE + "0"; |
| Map<Object, Object> overrides = new HashMap<>(); |
| pmf = JDOHelper.getPersistenceManagerFactory(overrides, name); |
| assertEquals("Incorrect value for RestoreValues", false, pmf.getRestoreValues()); |
| runTest(name); |
| } |
| |
| /** */ |
| public void testGetPMFfromNamedPUWithOverrides() { |
| String name = "PUNamed_" + IDENTITYTYPE + "0"; |
| Properties overrides = new Properties(); |
| overrides.setProperty(Constants.PROPERTY_RESTORE_VALUES, "true"); |
| pmf = JDOHelper.getPersistenceManagerFactory(overrides, name); |
| assertEquals("Incorrect value for RestoreValues", true, pmf.getRestoreValues()); |
| runTest(name); |
| } |
| |
| /** */ |
| public void testGetPMFfromNamedPUWithWhiteSpace() { |
| String name = "PUNamed_" + IDENTITYTYPE + "0"; |
| pmf = JDOHelper.getPersistenceManagerFactory(" \t" + name + " \n"); |
| assertEquals("Incorrect value for RestoreValues", false, pmf.getRestoreValues()); |
| runTest(name); |
| } |
| |
| /** |
| * @param name the name |
| */ |
| public void runTest(String name) { |
| String actualPUName = pmf.getPersistenceUnitName(); |
| assertEquals("Incorrect PersistenceUnitName", name, actualPUName); |
| |
| // check pmf.isClosed() before and after pmf.close() |
| if (pmf.isClosed()) { |
| fail(ASSERTION_FAILED, "PMF.isClosed() returned true on an open pmf"); |
| } |
| makePersistent(); |
| |
| closePMF(pmf); // don't use closePMF() because that sets pmf to null |
| |
| if (!pmf.isClosed()) { |
| fail(ASSERTION_FAILED, "PMF.isClosed() returned false on a closed pmf"); |
| } |
| // have next invocation of getPMF() get a new pmf |
| pmf = null; |
| } |
| |
| protected void makePersistent() { |
| addTearDownClass(PCPoint.class); |
| pm = pmf.getPersistenceManager(); |
| Transaction tx = pm.currentTransaction(); |
| tx.begin(); |
| PCPoint comp = new PCPoint(1, 2); |
| pm.makePersistent(comp); |
| tx.commit(); |
| } |
| } |