From 0e673042475fa48342c3dde1d39cc9e67b733d29 Mon Sep 17 00:00:00 2001 From: Aron Roberts Date: Tue, 15 Dec 2009 20:02:58 +0000 Subject: [PATCH] CSPACE-664,CSPACE-489,CSPACE-114: Added code to clean up extra entity objects created during testing to client tests of Dimensions and Contacts services. Removed extraneous comment from Acquisitions client test. --- .../client/test/AcquisitionServiceTest.java | 4 -- .../client/test/ContactServiceTest.java | 40 +++++++++++++++++-- .../client/test/DimensionServiceTest.java | 40 +++++++++++++++++-- 3 files changed, 72 insertions(+), 12 deletions(-) diff --git a/services/acquisition/client/src/test/java/org/collectionspace/services/client/test/AcquisitionServiceTest.java b/services/acquisition/client/src/test/java/org/collectionspace/services/client/test/AcquisitionServiceTest.java index 585075e50..f7aed8c5b 100644 --- a/services/acquisition/client/src/test/java/org/collectionspace/services/client/test/AcquisitionServiceTest.java +++ b/services/acquisition/client/src/test/java/org/collectionspace/services/client/test/AcquisitionServiceTest.java @@ -573,10 +573,6 @@ public class AcquisitionServiceTest extends AbstractServiceTest { // Cleanup of resources created during testing // --------------------------------------------------------------- - // --------------------------------------------------------------- - // Cleanup of resources created during testing - // --------------------------------------------------------------- - /** * Deletes all resources created by tests, after all tests have been run. * diff --git a/services/contact/client/src/test/java/org/collectionspace/services/client/test/ContactServiceTest.java b/services/contact/client/src/test/java/org/collectionspace/services/client/test/ContactServiceTest.java index a1c9b5f17..55db0250e 100644 --- a/services/contact/client/src/test/java/org/collectionspace/services/client/test/ContactServiceTest.java +++ b/services/contact/client/src/test/java/org/collectionspace/services/client/test/ContactServiceTest.java @@ -22,6 +22,7 @@ */ package org.collectionspace.services.client.test; +import java.util.ArrayList; import java.util.List; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @@ -36,6 +37,7 @@ import org.jboss.resteasy.plugins.providers.multipart.MultipartInput; import org.jboss.resteasy.plugins.providers.multipart.MultipartOutput; import org.jboss.resteasy.plugins.providers.multipart.OutputPart; import org.testng.Assert; +import org.testng.annotations.AfterClass; import org.testng.annotations.Test; import org.slf4j.Logger; @@ -57,6 +59,7 @@ public class ContactServiceTest extends AbstractServiceTest { private ContactClient client = new ContactClient(); final String SERVICE_PATH_COMPONENT = "contacts"; private String knownResourceId = null; + private List allResourceIdsCreated = new ArrayList(); // --------------------------------------------------------------- // CRUD tests : CREATE tests @@ -92,12 +95,18 @@ public class ContactServiceTest extends AbstractServiceTest { invalidStatusCodeMessage(REQUEST_TYPE, statusCode)); Assert.assertEquals(statusCode, EXPECTED_STATUS_CODE); - // Store the ID returned from this create operation + // Store the ID returned from the first resource created // for additional tests below. - knownResourceId = extractId(res); - if(logger.isDebugEnabled()){ - logger.debug(testName + ": knownResourceId=" + knownResourceId); + 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)); } @Override @@ -565,6 +574,29 @@ public class ContactServiceTest 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 ..."); + } + for (String resourceId : allResourceIdsCreated) { + // Note: Any non-success responses are ignored and not reported. + ClientResponse res = client.delete(resourceId); + } + } + // --------------------------------------------------------------- // Utility methods used by tests above // --------------------------------------------------------------- diff --git a/services/dimension/client/src/test/java/org/collectionspace/services/client/test/DimensionServiceTest.java b/services/dimension/client/src/test/java/org/collectionspace/services/client/test/DimensionServiceTest.java index 6ad4d757a..13702704d 100644 --- a/services/dimension/client/src/test/java/org/collectionspace/services/client/test/DimensionServiceTest.java +++ b/services/dimension/client/src/test/java/org/collectionspace/services/client/test/DimensionServiceTest.java @@ -22,6 +22,7 @@ */ package org.collectionspace.services.client.test; +import java.util.ArrayList; import java.util.List; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @@ -36,6 +37,7 @@ import org.jboss.resteasy.plugins.providers.multipart.MultipartInput; import org.jboss.resteasy.plugins.providers.multipart.MultipartOutput; import org.jboss.resteasy.plugins.providers.multipart.OutputPart; import org.testng.Assert; +import org.testng.annotations.AfterClass; import org.testng.annotations.Test; import org.slf4j.Logger; @@ -57,6 +59,7 @@ public class DimensionServiceTest extends AbstractServiceTest { private DimensionClient client = new DimensionClient(); final String SERVICE_PATH_COMPONENT = "dimensions"; private String knownResourceId = null; + private List allResourceIdsCreated = new ArrayList(); // --------------------------------------------------------------- // CRUD tests : CREATE tests @@ -92,12 +95,18 @@ public class DimensionServiceTest extends AbstractServiceTest { invalidStatusCodeMessage(REQUEST_TYPE, statusCode)); Assert.assertEquals(statusCode, EXPECTED_STATUS_CODE); - // Store the ID returned from this create operation + // Store the ID returned from the first resource created // for additional tests below. - knownResourceId = extractId(res); - if(logger.isDebugEnabled()){ - logger.debug(testName + ": knownResourceId=" + knownResourceId); + 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)); } @Override @@ -566,6 +575,29 @@ public class DimensionServiceTest 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 ..."); + } + for (String resourceId : allResourceIdsCreated) { + // Note: Any non-success responses are ignored and not reported. + ClientResponse res = client.delete(resourceId); + } + } + // --------------------------------------------------------------- // Utility methods used by tests above // --------------------------------------------------------------- -- 2.47.3