]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
CSPACE-489: Clean up extra entity resources created during tests. Now cleans up all...
authorAron Roberts <aron@socrates.berkeley.edu>
Thu, 10 Dec 2009 03:07:11 +0000 (03:07 +0000)
committerAron Roberts <aron@socrates.berkeley.edu>
Thu, 10 Dec 2009 03:07:11 +0000 (03:07 +0000)
services/acquisition/client/src/test/java/org/collectionspace/services/client/test/AcquisitionServiceTest.java
services/intake/client/src/test/java/org/collectionspace/services/client/test/IntakeServiceTest.java
services/relation/client/src/test/java/org/collectionspace/services/client/test/RelationServiceTest.java
services/vocabulary/client/src/test/java/org/collectionspace/services/client/test/VocabularyServiceTest.java

index 9f7f012e3582a0795f8c7248549ae9b63c6f2de8..f6b79f8d6aac0f3de524584817c21abea8d1df8d 100644 (file)
@@ -58,7 +58,7 @@ public class AcquisitionServiceTest extends AbstractServiceTest {
     // Instance variables specific to this test.
     private AcquisitionClient client = new AcquisitionClient();
     private String knownResourceId = null;
-    private List<String> additionalResourceIds = new ArrayList();
+    private List<String> allResourceIdsCreated = new ArrayList();
 
     // ---------------------------------------------------------------
     // CRUD tests : CREATE tests
@@ -101,11 +101,11 @@ public class AcquisitionServiceTest extends AbstractServiceTest {
             if (logger.isDebugEnabled()) {
                 logger.debug(testName + ": knownResourceId=" + knownResourceId);
             }
-        // Store the IDs from any additional resources created by tests,
-        // so they can be deleted after all tests have been run.
-        } else {
-            additionalResourceIds.add(extractId(res));
         }
+        
+        // Store the IDs from every resource created by tests,
+        // so they can be deleted after tests have been run.
+        allResourceIdsCreated.add(extractId(res));
     }
 
     @Override
@@ -573,16 +573,25 @@ public class AcquisitionServiceTest extends AbstractServiceTest {
     // Cleanup of resources created during testing
     // ---------------------------------------------------------------
 
+    // ---------------------------------------------------------------
+    // Cleanup of resources created during testing
+    // ---------------------------------------------------------------
+
     /**
-     * Deletes any additional resources created by tests,
-     * after all tests have been run.
+     * Deletes all resources created by tests, after all tests have been run.
+     *
+     * This cleanup method will always be run, even if one or more tests fail.
+     * For this reason, it attempts to remove all resources created
+     * at any point during testing, even if some of those resources
+     * may be expected to be deleted by certain tests.
      */
-    @AfterClass
+    @AfterClass(alwaysRun=true)
     public void cleanUp() {
         if (logger.isDebugEnabled()) {
             logger.debug("Cleaning up temporary resources created for testing ...");
         }
-        for (String resourceId : additionalResourceIds) {
+        for (String resourceId : allResourceIdsCreated) {
+            // Note: Any non-success responses are ignored and not reported.
             ClientResponse<Response> res = client.delete(resourceId);
         }
     }
index 0a8b3990ab79496b9d5c8e8048cfa14e44acc07c..c9fd9b0573d8e18b372d008c6e0ce4b40426d366 100644 (file)
@@ -59,7 +59,7 @@ public class IntakeServiceTest extends AbstractServiceTest {
     private IntakeClient client = new IntakeClient();
     final String SERVICE_PATH_COMPONENT = "intakes";
     private String knownResourceId = null;
-    private List<String> additionalResourceIds = new ArrayList();
+    private List<String> allResourceIdsCreated = new ArrayList();
 
     // ---------------------------------------------------------------
     // CRUD tests : CREATE tests
@@ -102,11 +102,11 @@ public class IntakeServiceTest extends AbstractServiceTest {
             if (logger.isDebugEnabled()) {
                 logger.debug(testName + ": knownResourceId=" + knownResourceId);
             }
-        // Store the IDs from any additional resources created by tests,
-        // so they can be deleted after all tests have been run.
-        } else {
-            additionalResourceIds.add(extractId(res));
         }
+        
+        // Store the IDs from every resource created by tests,
+        // so they can be deleted after tests have been run.
+        allResourceIdsCreated.add(extractId(res));
     }
 
     @Override
@@ -580,15 +580,20 @@ public class IntakeServiceTest extends AbstractServiceTest {
     // ---------------------------------------------------------------
 
     /**
-     * Deletes any additional resources created by tests,
-     * after all tests have been run.
+     * Deletes all resources created by tests, after all tests have been run.
+     *
+     * This cleanup method will always be run, even if one or more tests fail.
+     * For this reason, it attempts to remove all resources created
+     * at any point during testing, even if some of those resources
+     * may be expected to be deleted by certain tests.
      */
-    @AfterClass
+    @AfterClass(alwaysRun=true)
     public void cleanUp() {
         if (logger.isDebugEnabled()) {
             logger.debug("Cleaning up temporary resources created for testing ...");
         }
-        for (String resourceId : additionalResourceIds) {
+        for (String resourceId : allResourceIdsCreated) {
+            // Note: Any non-success responses are ignored and not reported.
             ClientResponse<Response> res = client.delete(resourceId);
         }
     }
index 80941fe467bf93d49bf0f37f35b4ae2ac9bbcfcc..caf99f6b6c092d1b1b211000c5f4c8dc57d361fe 100644 (file)
@@ -59,7 +59,7 @@ public class RelationServiceTest extends AbstractServiceTest {
     private RelationClient client = new RelationClient();
     final String SERVICE_PATH_COMPONENT = "relations";
     private String knownResourceId = null;
-    private List<String> additionalResourceIds = new ArrayList();
+    private List<String> allResourceIdsCreated = new ArrayList();
 
     // ---------------------------------------------------------------
     // CRUD tests : CREATE tests
@@ -99,11 +99,11 @@ public class RelationServiceTest extends AbstractServiceTest {
             if (logger.isDebugEnabled()) {
                 logger.debug(testName + ": knownResourceId=" + knownResourceId);
             }
-        // Store the IDs from any additional resources created by tests,
-        // so they can be deleted after all tests have been run.
-        } else {
-            additionalResourceIds.add(extractId(res));
         }
+
+        // Store the IDs from every resource created by tests,
+        // so they can be deleted after tests have been run.
+        allResourceIdsCreated.add(extractId(res));
     }
 
     @Override
@@ -588,15 +588,20 @@ public class RelationServiceTest extends AbstractServiceTest {
     // ---------------------------------------------------------------
 
     /**
-     * Deletes any additional resources created by tests,
-     * after all tests have been run.
+     * Deletes all resources created by tests, after all tests have been run.
+     *
+     * This cleanup method will always be run, even if one or more tests fail.
+     * For this reason, it attempts to remove all resources created
+     * at any point during testing, even if some of those resources
+     * may be expected to be deleted by certain tests.
      */
-    @AfterClass
+    @AfterClass(alwaysRun=true)
     public void cleanUp() {
         if (logger.isDebugEnabled()) {
             logger.debug("Cleaning up temporary resources created for testing ...");
         }
-        for (String resourceId : additionalResourceIds) {
+        for (String resourceId : allResourceIdsCreated) {
+            // Note: Any non-success responses are ignored and not reported.
             ClientResponse<Response> res = client.delete(resourceId);
         }
     }
index af40300a4c429840325cd34655a56f9ae702518b..a32dacd2bebae8666d795e98d1c77a2fac919347 100644 (file)
  */
 package org.collectionspace.services.client.test;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
@@ -39,6 +42,7 @@ import org.jboss.resteasy.plugins.providers.multipart.OutputPart;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testng.Assert;
+import org.testng.annotations.AfterClass;
 import org.testng.annotations.Test;
 
 /**
@@ -60,6 +64,9 @@ public class VocabularyServiceTest extends AbstractServiceTest {
     private String knownResourceId = null;
     private String knownResourceRefName = null;
     private String knownItemResourceId = null;
+    private List<String> allResourceIdsCreated = new ArrayList<String>();
+    private Map<String, String> allResourceItemIdsCreated =
+        new HashMap<String, String>();
     
     protected String createRefName(String displayName) {
        return displayName.replaceAll("\\W", "");
@@ -101,13 +108,22 @@ public class VocabularyServiceTest extends AbstractServiceTest {
                 invalidStatusCodeMessage(REQUEST_TYPE, statusCode));
         Assert.assertEquals(statusCode, EXPECTED_STATUS_CODE);
 
-        // Store the ID returned from this create operation
+        // Store the refname from the first resource created
         // for additional tests below.
-        knownResourceId = extractId(res);
         knownResourceRefName = refName;
-        if(logger.isDebugEnabled()){
-            logger.debug("create: knownResourceId=" + knownResourceId);
+
+        // Store the ID returned from the first resource created
+        // for additional tests below.
+        if (knownResourceId == null){
+            knownResourceId = extractId(res);
+            if (logger.isDebugEnabled()) {
+                logger.debug(testName + ": knownResourceId=" + knownResourceId);
+            }
         }
+        // Store the IDs from every resource created by tests,
+        // so they can be deleted after tests have been run.
+        allResourceIdsCreated.add(extractId(res));
+
     }
 
     @Test(dataProvider="testName", dataProviderClass=AbstractServiceTest.class,
@@ -144,6 +160,23 @@ public class VocabularyServiceTest extends AbstractServiceTest {
                 invalidStatusCodeMessage(REQUEST_TYPE, statusCode));
         Assert.assertEquals(statusCode, EXPECTED_STATUS_CODE);
 
+        // Store the ID returned from the first item resource created
+        // for additional tests below.
+        if (knownItemResourceId == null){
+            knownItemResourceId = extractId(res);
+            if (logger.isDebugEnabled()) {
+                logger.debug(testName + ": knownItemResourceId=" + knownItemResourceId);
+            }
+        }
+
+        // Store the IDs from any item resources created
+        // by tests, along with the IDs of their parents, so these items
+        // can be deleted after all tests have been run.
+        //
+        // Item resource IDs are unique, so these are used as keys;
+        // the non-unique IDs of their parents are stored as associated values.
+        allResourceItemIdsCreated.put(extractId(res), vcsid);
+
         return extractId(res);
     }
 
@@ -904,6 +937,42 @@ public class VocabularyServiceTest extends AbstractServiceTest {
 
     }
 
+    // ---------------------------------------------------------------
+    // Cleanup of resources created during testing
+    // ---------------------------------------------------------------
+    
+    /**
+     * Deletes all resources created by tests, after all tests have been run.
+     *
+     * This cleanup method will always be run, even if one or more tests fail.
+     * For this reason, it attempts to remove all resources created
+     * at any point during testing, even if some of those resources
+     * may be expected to be deleted by certain tests.
+     */
+    @AfterClass(alwaysRun=true)
+    public void cleanUp() {
+
+        if (logger.isDebugEnabled()) {
+            logger.debug("Cleaning up temporary resources created for testing ...");
+        }
+        // Clean up vocabulary item resources.
+        String vocabularyResourceId;
+        String vocabularyItemResourceId;
+        for (Map.Entry<String, String> entry : allResourceItemIdsCreated.entrySet()) {
+            vocabularyItemResourceId = entry.getKey();
+            vocabularyResourceId = entry.getValue();
+            // Note: Any non-success responses are ignored and not reported.
+            ClientResponse<Response> res =
+                client.deleteItem(vocabularyResourceId, vocabularyItemResourceId);
+        }
+        // Clean up vocabulary resources.
+        for (String resourceId : allResourceIdsCreated) {
+            // Note: Any non-success responses are ignored and not reported.
+            ClientResponse<Response> res = client.delete(resourceId);
+        }
+
+    }
+
     // ---------------------------------------------------------------
     // Utility methods used by tests above
     // ---------------------------------------------------------------