You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by cl...@apache.org on 2008/03/11 23:13:08 UTC

svn commit: r636125 [2/2] - in /db/jdo/trunk: api2-legacy/src/java/javax/jdo/ api2-legacy/test/java/javax/jdo/ tck2-legacy/src/java/org/apache/jdo/tck/ tck2-legacy/src/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/

Modified: db/jdo/trunk/tck2-legacy/src/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/Jdoconfig.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck2-legacy/src/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/Jdoconfig.java?rev=636125&r1=636124&r2=636125&view=diff
==============================================================================
--- db/jdo/trunk/tck2-legacy/src/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/Jdoconfig.java (original)
+++ db/jdo/trunk/tck2-legacy/src/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/Jdoconfig.java Tue Mar 11 15:13:02 2008
@@ -16,6 +16,7 @@
  */
 package org.apache.jdo.tck.api.persistencemanagerfactory.config;
 
+import java.util.HashMap;
 import javax.jdo.JDOHelper;
 import javax.jdo.PersistenceManager;
 import javax.jdo.PersistenceManagerFactory;
@@ -26,11 +27,11 @@
 
 /**
  *<B>Title:</B>Close of PersistenceManagerFactory  
- *<BR>
+ *<BR/>
  *<B>Keywords:</B> persistencemanagerfactory, jdoconfig.xml
- *<BR>
+ *<BR/>
  *<B>Assertion IDs:</B> A11.1.2-1
- *<BR>
+ *<BR/>
  *<B>Assertion Description: </B>
  * Users can access a PersistenceManagerFactory by creating a jdoconfig.xml file
  * and making it available on the class path as META-INF/jdoconfig.xml.
@@ -47,6 +48,7 @@
     // Do not use superclass pmf, pm
     private PersistenceManagerFactory pmf = null;
     private PersistenceManager pm = null;
+    private HashMap overrides = new HashMap();
 
     /**
      * The <code>main</code> is called when the class
@@ -56,32 +58,46 @@
     public static void main(String[] args) {
         BatchTestRunner.run(Jdoconfig.class);
     }
+    
+        /**
+     * @see JDO_Test#localSetUp()
+     */
+    protected void localSetUp() {
+        /* Instance can be persisted ONLY if javax.jdo.mapping.Schema
+         *   is overriden with 
+         *   JDOHelper.getPersistenceManagerFactory(Map overrides, ...).
+         *   The value depends on identity type so can only be known at runtime.
+         */
+        if (isTestToBePerformed()) {
+            overrides.put("javax.jdo.mapping.Schema", schemaname);
+        }
+    }
 
-    /** */
+    /** */ 
     public void testGetPMFNoArgs() {
         pmf = JDOHelper.getPersistenceManagerFactory();
-        runTest(ANONYMOUS_PMF_NAME);
+        checkIsOpen(ANONYMOUS_PMF_NAME);
     }
 
     /** */
     public void testGetPMFEmptyString() {
         String name = "";
         pmf = JDOHelper.getPersistenceManagerFactory(name);
-        runTest(ANONYMOUS_PMF_NAME);
+        checkIsOpen(ANONYMOUS_PMF_NAME);
     }
 
     /** */
     public void testGetPMFNull() {
         String name = null;
         pmf = JDOHelper.getPersistenceManagerFactory(name);
-        runTest(ANONYMOUS_PMF_NAME);
+        checkIsOpen(ANONYMOUS_PMF_NAME);
     }
 
     /** */
     public void testGetPMFStringSpace() {
         String name = " ";
         pmf = JDOHelper.getPersistenceManagerFactory(name);
-        runTest(ANONYMOUS_PMF_NAME);
+        checkIsOpen(ANONYMOUS_PMF_NAME);
     }
 
     /** */
@@ -90,31 +106,72 @@
         pmf = JDOHelper.getPersistenceManagerFactory(name);
         assertEquals("Incorrect value for RestoreValues",
                 pmf.getRestoreValues(), false);
-        runTest(name);
+        checkIsOpen(name);
+    }
+
+    /** */
+    public void testGetPMFEmptyStringOverrides() {
+        String name = "";
+        pmf = JDOHelper.getPersistenceManagerFactory(overrides, name);
+        checkPersistent(ANONYMOUS_PMF_NAME);
+    }
+
+    /** */
+    public void testGetPMFNullOverrides() {
+        String name = null;
+        pmf = JDOHelper.getPersistenceManagerFactory(overrides, name);
+        checkPersistent(ANONYMOUS_PMF_NAME);
+    }
+
+    /** */
+    public void testGetPMFStringSpaceOverrides() {
+        String name = " ";
+        pmf = JDOHelper.getPersistenceManagerFactory(overrides, name);
+        checkPersistent(ANONYMOUS_PMF_NAME);
+    }
+
+    /** */
+    public void testGetPMFNamedOverrides() {
+        String name = "namedPMF0";
+        pmf = JDOHelper.getPersistenceManagerFactory(overrides, name);
+        assertEquals("Incorrect value for RestoreValues",
+                pmf.getRestoreValues(), false);
+        checkPersistent(name);
     }
 
     /** */
-    public void testGetPMFNamedSpaces() {
+    public void testGetPMFNamedSpacesOverrides() {
         String name = "namedPMF1";
-        pmf = JDOHelper.getPersistenceManagerFactory(" \t" + name + " \n");
+        pmf = JDOHelper.getPersistenceManagerFactory(overrides,
+                " \t" + name + " \n");
         assertEquals("Incorrect value for RestoreValues",
                 pmf.getRestoreValues(), true);
-        runTest(name);
+        checkPersistent(name);
     }
 
     /** */
-    public void runTest(String name) {
+    public void checkIsOpen(String name) {
         assertEquals("Incorrect PMF name", pmf.getName(), name);
-
-        // check pmf.isClosed() before and after pmf.close()
         if (pmf.isClosed()) {
             fail(ASSERTION_FAILED,
                     "PMF.isClosed() returned true on an open pmf");
         }
+        pmf.close();
+        // have next invocation of getPMF() get a new pmf
+        pmf = null;
+    }
+
+    /** 
+     * Checks if instance can be persisted. Can be used if
+     *    javax.jdo.mapping.Schema is overriden with the correct value
+     *    with JDOHelper.getPersistenceManagerFactory(Map overrides, ...).
+     */
+    public void checkPersistent(String name) {
+        assertEquals("Incorrect PMF name", pmf.getName(), name);
+
         makePersistent();
 
         pmf.close();
-
         if (!pmf.isClosed()) {
             fail(ASSERTION_FAILED,
                     "PMF.isClosed() returned false on a closed pmf");