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/07/16 00:44:37 UTC

svn commit: r677080 - in /db/jdo/trunk/tck2/src/java/org/apache/jdo/tck: AbstractReaderTest.java mapping/AbstractRelationshipTest.java mapping/CompletenessTest.java query/QueryTest.java

Author: clr
Date: Tue Jul 15 15:44:36 2008
New Revision: 677080

URL: http://svn.apache.org/viewvc?rev=677080&view=rev
Log:
JDO-555 refactor Query and Completeness tests for security

Added:
    db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/AbstractReaderTest.java   (with props)
Modified:
    db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/mapping/AbstractRelationshipTest.java
    db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/mapping/CompletenessTest.java
    db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/query/QueryTest.java

Added: db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/AbstractReaderTest.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/AbstractReaderTest.java?rev=677080&view=auto
==============================================================================
--- db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/AbstractReaderTest.java (added)
+++ db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/AbstractReaderTest.java Tue Jul 15 15:44:36 2008
@@ -0,0 +1,80 @@
+/*
+ * 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
+ *
+ *     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
+ * limitations under the License.
+ */
+
+package org.apache.jdo.tck;
+
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.xml.XmlBeanFactory;
+
+/*
+ * Abstract class for managed relationship tests
+ */
+public class AbstractReaderTest extends JDO_Test {
+
+    /** The list of all objects in the bean collection. */
+    protected List rootOids;
+
+    /** The name of the root object in the bean collection. */
+    protected static final String rootName = "root";
+
+    /** The name of the file containing the bean collection (test data). */
+    protected final String inputFilename = System.getProperty("jdo.tck.testdata");
+
+    /** The map of String (bean name) to Object (bean). */
+    protected Map oidMap = new HashMap();
+
+    /** Get the named bean from the bean factory.
+     * 
+     * @param reader the xml bean reader
+     * @param name the name of the bean
+     * @return the named object
+     */
+    protected Object getBean(final XmlBeanFactory reader, final String name) {
+        return AccessController.doPrivileged(
+            new PrivilegedAction() {
+                public Object run() {
+                    return reader.getBean(name);
+                }
+            }
+        );
+    }
+
+    /** Get the root object from the bean factory.
+     * 
+     * @param reader the xml bean reader
+     * @return the List of objects
+     */
+    protected List getRootList(XmlBeanFactory reader) {
+        return (List) getBean(reader, rootName);
+    }
+
+    /** Get the named object from the Map of objects.
+     * 
+     * @param name the bean name
+     * @return the named object
+     */
+    protected Object getOidByName(String name) {
+        return oidMap.get((Object)name);
+    }
+
+}

Propchange: db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/AbstractReaderTest.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Modified: db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/mapping/AbstractRelationshipTest.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/mapping/AbstractRelationshipTest.java?rev=677080&r1=677079&r2=677080&view=diff
==============================================================================
--- db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/mapping/AbstractRelationshipTest.java (original)
+++ db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/mapping/AbstractRelationshipTest.java Tue Jul 15 15:44:36 2008
@@ -18,30 +18,20 @@
 package org.apache.jdo.tck.mapping;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 
-import org.apache.jdo.tck.JDO_Test;
+import org.apache.jdo.tck.AbstractReaderTest;
 import org.apache.jdo.tck.pc.company.CompanyFactoryRegistry;
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
 
 /*
  * Abstract class for managed relationship tests
  */
-public class AbstractRelationshipTest extends JDO_Test {
-    
-    /** */
-    protected List rootOids;
-    
-    /** */
-    protected final String inputFilename = System.getProperty("jdo.tck.testdata");
+public class AbstractRelationshipTest extends AbstractReaderTest {
     
     protected CompanyModelReader reader = null;
     
-    protected Map oidMap = new HashMap();
-    
     /** */
     protected final boolean isTestToBePerformed = isTestToBePerformed();
     
@@ -49,14 +39,14 @@
      * @see JDO_Test#localSetUp()
      */
     protected void localSetUp() {
-        if (isTestToBePerformed) {
+        if (isTestToBePerformed()) {
             getPM();
             CompanyFactoryRegistry.registerFactory(pm);
             reader = new CompanyModelReader(inputFilename);
             addTearDownClass(reader.getTearDownClassesFromFactory());
             // persist test data
             pm.currentTransaction().begin();
-            List rootList = reader.getRootList();
+            List rootList = getRootList(reader);
             pm.makePersistentAll(rootList);
             rootOids = new ArrayList();
             for (Iterator i = rootList.iterator(); i.hasNext(); ) {
@@ -81,9 +71,5 @@
             cleanupPM();
         }
     }
-    
-    protected Object getOidByName(String name) {
-        return oidMap.get((Object)name);
-    }
-    
+
 }

Modified: db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/mapping/CompletenessTest.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/mapping/CompletenessTest.java?rev=677080&r1=677079&r2=677080&view=diff
==============================================================================
--- db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/mapping/CompletenessTest.java (original)
+++ db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/mapping/CompletenessTest.java Tue Jul 15 15:44:36 2008
@@ -21,7 +21,7 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.apache.jdo.tck.JDO_Test;
+import org.apache.jdo.tck.AbstractReaderTest;
 import org.apache.jdo.tck.pc.company.CompanyFactoryRegistry;
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
 import org.apache.jdo.tck.util.BatchTestRunner;
@@ -40,21 +40,12 @@
  *<B>Assertion Description: </B>
  */
 
-public class CompletenessTest extends JDO_Test {
+public class CompletenessTest extends AbstractReaderTest {
 
     /** */
     private static final String ASSERTION_FAILED = 
         "Assertion A18-[not identified] failed: ";
     
-    /** */
-    private final boolean isTestToBePerformed = isTestToBePerformed();
-
-    /** */
-    protected List rootOids;
-    
-    /** */
-    protected final String inputFilename = System.getProperty("jdo.tck.testdata");
-    
     /**
      * The <code>main</code> is called when the class
      * is directly executed from the command line.
@@ -68,14 +59,14 @@
      * @see JDO_Test#localSetUp()
      */
     protected void localSetUp() {
-        if (isTestToBePerformed) {
+        if (isTestToBePerformed()) {
             getPM();
             CompanyFactoryRegistry.registerFactory(pm);
             CompanyModelReader reader = new CompanyModelReader(inputFilename);
             addTearDownClass(reader.getTearDownClassesFromFactory());
             // persist test data
             pm.currentTransaction().begin();
-            List rootList = reader.getRootList();
+            List rootList = getRootList(reader);
             pm.makePersistentAll(rootList);
             rootOids = new ArrayList();
             for (Iterator i = rootList.iterator(); i.hasNext(); ) {
@@ -89,12 +80,12 @@
 
     /** */
     public void test() {
-        if (isTestToBePerformed) {
+        if (isTestToBePerformed()) {
             // register the default factory
             CompanyFactoryRegistry.registerFactory();
             // get new obj graph to compare persistent graph with
             CompanyModelReader reader = new CompanyModelReader(inputFilename);
-            List rootList = reader.getRootList();
+            List rootList = getRootList(reader);
             
             getPM();
             pm.currentTransaction().begin();

Modified: db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/query/QueryTest.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/query/QueryTest.java?rev=677080&r1=677079&r2=677080&view=diff
==============================================================================
--- db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/query/QueryTest.java (original)
+++ db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/query/QueryTest.java Tue Jul 15 15:44:36 2008
@@ -34,9 +34,7 @@
 import javax.jdo.Query;
 import javax.jdo.Transaction;
 
-import junit.framework.AssertionFailedError;
-
-import org.apache.jdo.tck.JDO_Test;
+import org.apache.jdo.tck.AbstractReaderTest;
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
 import org.apache.jdo.tck.pc.mylib.MylibReader;
 import org.apache.jdo.tck.pc.mylib.PCPoint;
@@ -44,7 +42,7 @@
 import org.apache.jdo.tck.util.ConversionHelper;
 import org.apache.jdo.tck.util.EqualityHelper;
 
-public abstract class QueryTest extends JDO_Test {
+public abstract class QueryTest extends AbstractReaderTest {
 
     /** */
     public static final String SERIALZED_QUERY = "query.ser";
@@ -209,7 +207,7 @@
      */
     public CompanyModelReader loadAndPersistCompanyModel(PersistenceManager pm) {
         makePersistentAll(
-            pm, getCompanyModelReaderForPersistentInstances().getRootList());
+            pm, getRootList(getCompanyModelReaderForPersistentInstances()));
         return getCompanyModelReaderForPersistentInstances();
     }
     
@@ -221,7 +219,7 @@
      */
     public MylibReader loadAndPersistMylib(PersistenceManager pm) {
         makePersistentAll(
-            pm, getMylibReaderForPersistentInstances().getRootList());
+            pm, getRootList(getMylibReaderForPersistentInstances()));
         return getMylibReaderForPersistentInstances();
     }
 
@@ -251,7 +249,7 @@
      */
     protected Object getPersistentCompanyModelInstance(String beanName) {
         return beanName == null ? null :
-            getCompanyModelReaderForPersistentInstances().getBean(beanName);
+            getBean(getCompanyModelReaderForPersistentInstances(),beanName);
     }
     
     /**
@@ -261,7 +259,7 @@
      */
     protected Object getTransientCompanyModelInstance(String beanName) {
         return beanName == null ? null :
-            getCompanyModelReaderForTransientInstances().getBean(beanName);
+            getBean(getCompanyModelReaderForTransientInstances(),beanName);
     }
     
     /**
@@ -323,7 +321,7 @@
      */
     protected Object getPersistentMylibInstance(String beanName) {
         return beanName == null ? 
-                null : getMylibReaderForPersistentInstances().getBean(beanName);
+                null : getBean(getMylibReaderForPersistentInstances(),beanName);
     }
     
     /**
@@ -333,7 +331,7 @@
      */
     protected Object getTransientMylibInstance(String beanName) {
         return beanName == null ? 
-                null : getMylibReaderForTransientInstances().getBean(beanName);
+                null : getBean(getMylibReaderForTransientInstances(),beanName);
     }
     
     /**
@@ -968,7 +966,7 @@
     private void compile(String assertion, 
             QueryElementHolder queryElementHolder, boolean asSingleString,  
             String singleStringQuery, boolean positive) {
-        PersistenceManager pm = getPM();
+        getPM();
         try {
             Query query;
             if (queryElementHolder != null) {
@@ -1011,7 +1009,7 @@
      */
     protected void compile(String assertion, 
             Query query, String queryText, boolean positive) {
-        PersistenceManager pm = getPM();
+        getPM();
         Transaction tx = pm.currentTransaction();
         tx.begin();
         try {
@@ -1128,7 +1126,7 @@
     private Object execute(String assertion, 
             QueryElementHolder queryElementHolder, boolean asSingleString,
             Object parameters, Object expectedResult) {
-        PersistenceManager pm = getPM();
+        getPM();
         Query query = asSingleString ?
                 queryElementHolder.getSingleStringQuery(pm) :
                     queryElementHolder.getAPIQuery(pm);
@@ -1248,7 +1246,7 @@
             String singleStringQuery, boolean hasOrdering,
             Object parameters, Object expectedResult, boolean positive) {
         Object result = null;
-        PersistenceManager pm = getPM();
+        getPM();
         Transaction tx = pm.currentTransaction();
         tx.begin();
         try {
@@ -1392,7 +1390,7 @@
     private void delete(String assertion, 
             QueryElementHolder queryElementHolder, boolean asSingleString,
             Object parameters, long expectedNrOfDeletedObjects) {
-        PersistenceManager pm = getPM();
+        getPM();
         Query query = asSingleString ?
                 queryElementHolder.getSingleStringQuery(pm) :
                     queryElementHolder.getAPIQuery(pm);
@@ -1425,7 +1423,7 @@
             String singleStringQuery, Object parameters, 
             long expectedNrOfDeletedObjects) {
         boolean positive = expectedNrOfDeletedObjects >= 0;
-        PersistenceManager pm = getPM();
+        getPM();
         Transaction tx = pm.currentTransaction();
         tx.begin();
         try {