diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/AbstractDeletionTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/AbstractDeletionTest.java index 65c46537331db6d18e4133d8d9ca45c700d9a94b..64d5b6c51238dc12846d4f9a7cd2530d52885d91 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/AbstractDeletionTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/AbstractDeletionTest.java @@ -29,6 +29,7 @@ import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.sample.SampleCreatio import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.deletion.DeletionFetchOptions; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.experiment.ExperimentFetchOptions; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.sample.SampleFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.dataset.DataSetPermId; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.deletion.IDeletionId; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.entitytype.EntityTypePermId; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.experiment.ExperimentPermId; @@ -44,7 +45,7 @@ import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.space.SpacePermId; public class AbstractDeletionTest extends AbstractTest { - protected ExperimentPermId createExperimentToDelete() + protected ExperimentPermId createCisdExperiment() { String sessionToken = v3api.login(TEST_USER, PASSWORD); @@ -62,7 +63,7 @@ public class AbstractDeletionTest extends AbstractTest return permIds.get(0); } - protected SamplePermId createSampleToDelete(IExperimentId experimentId) + protected SamplePermId createCisdSample(IExperimentId experimentId) { final String sessionToken = v3api.login(TEST_USER, PASSWORD); @@ -83,60 +84,93 @@ public class AbstractDeletionTest extends AbstractTest protected void assertExperimentExists(IExperimentId experimentId) { - String sessionToken = v3api.login(TEST_USER, PASSWORD); - List<Experiment> result = v3api.listExperiments(sessionToken, Collections.singletonList(experimentId), new ExperimentFetchOptions()); - Assert.assertEquals(1, result.size()); + assertExperimentExists(experimentId, true); } protected void assertExperimentDoesNotExist(IExperimentId experimentId) + { + assertExperimentExists(experimentId, false); + } + + private void assertExperimentExists(IExperimentId experimentId, boolean exists) { String sessionToken = v3api.login(TEST_USER, PASSWORD); List<Experiment> result = v3api.listExperiments(sessionToken, Collections.singletonList(experimentId), new ExperimentFetchOptions()); - Assert.assertEquals(0, result.size()); + Assert.assertEquals(exists ? 1 : 0, result.size()); } protected void assertSampleExists(ISampleId sampleId) { - String sessionToken = v3api.login(TEST_USER, PASSWORD); - List<Sample> result = v3api.listSamples(sessionToken, Collections.singletonList(sampleId), new SampleFetchOptions()); - Assert.assertEquals(1, result.size()); + assertSampleExists(sampleId, true); } protected void assertSampleDoesNotExist(ISampleId sampleId) + { + assertSampleExists(sampleId, false); + } + + private void assertSampleExists(ISampleId sampleId, boolean exists) { String sessionToken = v3api.login(TEST_USER, PASSWORD); List<Sample> result = v3api.listSamples(sessionToken, Collections.singletonList(sampleId), new SampleFetchOptions()); - Assert.assertEquals(0, result.size()); + Assert.assertEquals(exists ? 1 : 0, result.size()); } - protected void assertDeletionExists(IDeletionId deletionId) + protected void assertDataSetExists(DataSetPermId dataSetId) { - String sessionToken = v3api.login(TEST_USER, PASSWORD); - List<Deletion> result = v3api.listDeletions(sessionToken, new DeletionFetchOptions()); + assertDataSetExists(dataSetId, true); + } - for (Deletion item : result) - { - if (item.getId().equals(deletionId)) - { - return; - } - } + protected void assertDataSetDoesNotExist(DataSetPermId dataSetId) + { + assertDataSetExists(dataSetId, false); + } + + private void assertDataSetExists(DataSetPermId dataSetId, boolean exists) + { + String sessionToken = generalInformationService.tryToAuthenticateForAllServices(TEST_USER, PASSWORD); + + ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria criteria = + new ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria(); + criteria.addMatchClause(ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria.MatchClause.createAttributeMatch( + ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria.MatchClauseAttribute.CODE, dataSetId.getPermId())); + + List<ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet> result = generalInformationService.searchForDataSets(sessionToken, criteria); + Assert.assertEquals(exists ? 1 : 0, result.size()); + } - Assert.fail("Deletion " + deletionId + " does not exist"); + protected void assertDeletionExists(IDeletionId deletionId) + { + assertDeletionExists(deletionId, true); } protected void assertDeletionDoesNotExist(IDeletionId deletionId) + { + assertDeletionExists(deletionId, false); + } + + private void assertDeletionExists(IDeletionId deletionId, boolean exists) { String sessionToken = v3api.login(TEST_USER, PASSWORD); List<Deletion> result = v3api.listDeletions(sessionToken, new DeletionFetchOptions()); + Deletion found = null; for (Deletion item : result) { if (item.getId().equals(deletionId)) { - Assert.fail("Deletion " + deletionId + " exists"); + found = item; + break; } } + + if (exists) + { + Assert.assertNotNull(found); + } else + { + Assert.assertNull(found); + } } } diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/AbstractTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/AbstractTest.java index 92ca9ff9e2f86e81014ca44f73c4486001aa76a4..33bcc9a204669f6db5e4222be4c7c50b222904fd 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/AbstractTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/AbstractTest.java @@ -23,11 +23,13 @@ import java.lang.reflect.Method; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; import org.testng.annotations.AfterClass; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; +import ch.ethz.sis.openbis.generic.shared.api.v3.IApplicationServerApi; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.attachment.Attachment; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.experiment.Experiment; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.person.Person; @@ -39,6 +41,7 @@ import ch.ethz.sis.openbis.generic.shared.api.v3.exceptions.UnauthorizedObjectAc import ch.systemsx.cisd.common.action.IDelegatedAction; import ch.systemsx.cisd.common.logging.BufferedAppender; import ch.systemsx.cisd.common.test.AssertionUtil; +import ch.systemsx.cisd.openbis.generic.shared.api.v1.IGeneralInformationService; import ch.systemsx.cisd.openbis.systemtest.SystemTestCase; /** @@ -59,6 +62,12 @@ public class AbstractTest extends SystemTestCase private BufferedAppender logRecorder; + @Autowired + protected IApplicationServerApi v3api; + + @Autowired + protected IGeneralInformationService generalInformationService; + @BeforeClass public void beforeClass() { diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/ConfirmDeletionTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/ConfirmDeletionTest.java index dc7f16c94fa899e3c8bc4c9e76262efb7e7d0b5b..88253fa488363bb1391dec846645290dedba5d5e 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/ConfirmDeletionTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/ConfirmDeletionTest.java @@ -21,6 +21,8 @@ import java.util.Collections; import org.testng.annotations.Test; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.deletion.experiment.ExperimentDeletionOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.deletion.sample.SampleDeletionOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.dataset.DataSetPermId; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.deletion.DeletionTechId; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.deletion.IDeletionId; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.experiment.ExperimentPermId; @@ -34,15 +36,19 @@ public class ConfirmDeletionTest extends AbstractDeletionTest { @Test - public void testConfirmDeletion() + public void testConfirmDeletionOfExperimentWithSample() { String sessionToken = v3api.login(TEST_USER, PASSWORD); - ExperimentPermId experimentId = createExperimentToDelete(); - SamplePermId sampleId = createSampleToDelete(experimentId); + ExperimentPermId experimentId = createCisdExperiment(); + SamplePermId sampleId = createCisdSample(experimentId); ExperimentDeletionOptions deletionOptions = new ExperimentDeletionOptions(); deletionOptions.setReason("It is just a test"); + + assertExperimentExists(experimentId); + assertSampleExists(sampleId); + IDeletionId deletionId = v3api.deleteExperiments(sessionToken, Collections.singletonList(experimentId), deletionOptions); assertDeletionExists(deletionId); @@ -56,6 +62,37 @@ public class ConfirmDeletionTest extends AbstractDeletionTest assertSampleDoesNotExist(sampleId); } + @Test + public void testConfirmDeletionOfSampleWithDataSet() + { + String sessionToken = v3api.login(TEST_USER, PASSWORD); + + SamplePermId sampleId = new SamplePermId("200902091225616-1027"); + DataSetPermId dataSetId1 = new DataSetPermId("20081105092159333-3"); + DataSetPermId dataSetId2 = new DataSetPermId("20110805092359990-17"); + + SampleDeletionOptions deletionOptions = new SampleDeletionOptions(); + deletionOptions.setReason("It is just a test"); + + assertSampleExists(sampleId); + assertDataSetExists(dataSetId1); + assertDataSetExists(dataSetId2); + + IDeletionId deletionId = v3api.deleteSamples(sessionToken, Collections.singletonList(sampleId), deletionOptions); + + assertDeletionExists(deletionId); + assertSampleDoesNotExist(sampleId); + assertDataSetDoesNotExist(dataSetId1); + assertDataSetDoesNotExist(dataSetId2); + + v3api.confirmDeletions(sessionToken, Collections.singletonList(deletionId)); + + assertDeletionDoesNotExist(deletionId); + assertSampleDoesNotExist(sampleId); + assertDataSetDoesNotExist(dataSetId1); + assertDataSetDoesNotExist(dataSetId2); + } + @Test public void testConfirmDeletionWithNonexistentDeletion() { @@ -77,7 +114,7 @@ public class ConfirmDeletionTest extends AbstractDeletionTest { String sessionToken = v3api.login(TEST_USER, PASSWORD); - ExperimentPermId experimentId = createExperimentToDelete(); + ExperimentPermId experimentId = createCisdExperiment(); ExperimentDeletionOptions deletionOptions = new ExperimentDeletionOptions(); deletionOptions.setReason("It is just a test"); diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/DeleteExperimentTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/DeleteExperimentTest.java index 0168a318448ea3e511275f52ce363952c0db9fda..b766c68c9e0494b0e59972f13962797a5377216c 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/DeleteExperimentTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/DeleteExperimentTest.java @@ -17,26 +17,22 @@ package ch.ethz.sis.openbis.systemtest.api.v3; import java.util.Collections; -import java.util.List; import junit.framework.Assert; import org.testng.annotations.Test; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.deletion.experiment.ExperimentDeletionOptions; -import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.experiment.Experiment; -import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.experiment.ExperimentCreation; -import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.experiment.ExperimentFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.dataset.DataSetPermId; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.deletion.IDeletionId; -import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.entitytype.EntityTypePermId; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.experiment.ExperimentPermId; -import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.project.ProjectIdentifier; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.sample.SamplePermId; import ch.systemsx.cisd.common.action.IDelegatedAction; /** * @author pkupczyk */ -public class DeleteExperimentTest extends AbstractExperimentTest +public class DeleteExperimentTest extends AbstractDeletionTest { @Test @@ -44,22 +40,68 @@ public class DeleteExperimentTest extends AbstractExperimentTest { String sessionToken = v3api.login(TEST_USER, PASSWORD); - ExperimentPermId permId = createExperimentToDelete(); + ExperimentPermId permId = createCisdExperiment(); ExperimentDeletionOptions options = new ExperimentDeletionOptions(); options.setReason("It is just a test"); + assertExperimentExists(permId); + IDeletionId deletionId = v3api.deleteExperiments(sessionToken, Collections.singletonList(permId), options); Assert.assertNotNull(deletionId); - List<Experiment> experiments = v3api.listExperiments(sessionToken, Collections.singletonList(permId), new ExperimentFetchOptions()); - Assert.assertEquals(0, experiments.size()); + assertExperimentDoesNotExist(permId); + } + + @Test + public void testDeleteExperimentWithSample() + { + String sessionToken = v3api.login(TEST_USER, PASSWORD); + + ExperimentPermId experimentPermId = createCisdExperiment(); + SamplePermId samplePermId = createCisdSample(experimentPermId); + + ExperimentDeletionOptions options = new ExperimentDeletionOptions(); + options.setReason("It is just a test"); + + assertExperimentExists(experimentPermId); + assertSampleExists(samplePermId); + + IDeletionId deletionId = v3api.deleteExperiments(sessionToken, Collections.singletonList(experimentPermId), options); + Assert.assertNotNull(deletionId); + + assertExperimentDoesNotExist(experimentPermId); + assertSampleDoesNotExist(samplePermId); + } + + @Test + public void testDeleteExperimentWithDataSet() + { + String sessionToken = v3api.login(TEST_USER, PASSWORD); + + ExperimentPermId experimentPermId = new ExperimentPermId("200902091255058-1035"); + DataSetPermId dataSetPermId1 = new DataSetPermId("20081105092159333-3"); + DataSetPermId dataSetPermId2 = new DataSetPermId("20110805092359990-17"); + + ExperimentDeletionOptions options = new ExperimentDeletionOptions(); + options.setReason("It is just a test"); + + assertExperimentExists(experimentPermId); + assertDataSetExists(dataSetPermId1); + assertDataSetExists(dataSetPermId2); + + IDeletionId deletionId = v3api.deleteExperiments(sessionToken, Collections.singletonList(experimentPermId), options); + Assert.assertNotNull(deletionId); + + assertExperimentDoesNotExist(experimentPermId); + assertDataSetDoesNotExist(dataSetPermId1); + assertDataSetDoesNotExist(dataSetPermId2); } @Test public void testDeleteExperimentWithUnauthorizedExperiment() { - final ExperimentPermId permId = createExperimentToDelete(); + final ExperimentPermId permId = createCisdExperiment(); assertUnauthorizedObjectAccessException(new IDelegatedAction() { @@ -76,22 +118,4 @@ public class DeleteExperimentTest extends AbstractExperimentTest }, permId); } - private ExperimentPermId createExperimentToDelete() - { - String sessionToken = v3api.login(TEST_USER, PASSWORD); - - ExperimentCreation creation = new ExperimentCreation(); - creation.setCode("EXPERIMENT_TO_DELETE"); - creation.setTypeId(new EntityTypePermId("SIRNA_HCS")); - creation.setProjectId(new ProjectIdentifier("/CISD/DEFAULT")); - - List<ExperimentPermId> permIds = v3api.createExperiments(sessionToken, Collections.singletonList(creation)); - List<Experiment> experiments = v3api.listExperiments(sessionToken, permIds, new ExperimentFetchOptions()); - - Assert.assertEquals(1, experiments.size()); - Assert.assertEquals("EXPERIMENT_TO_DELETE", experiments.get(0).getCode()); - - return permIds.get(0); - } - } diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/DeleteSampleTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/DeleteSampleTest.java index f044d8d862f4136b5e59a8dd3a96bbaa7a3c93a8..b9a266c544edf990c9f8595fe0ca6d108a66c480 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/DeleteSampleTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/DeleteSampleTest.java @@ -17,26 +17,22 @@ package ch.ethz.sis.openbis.systemtest.api.v3; import java.util.Collections; -import java.util.List; import junit.framework.Assert; import org.testng.annotations.Test; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.deletion.sample.SampleDeletionOptions; -import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.sample.Sample; -import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.sample.SampleCreation; -import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.sample.SampleFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.dataset.DataSetPermId; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.deletion.IDeletionId; -import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.entitytype.EntityTypePermId; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.experiment.ExperimentPermId; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.sample.SamplePermId; -import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.space.SpacePermId; import ch.systemsx.cisd.common.action.IDelegatedAction; /** * @author pkupczyk */ -public class DeleteSampleTest extends AbstractSampleTest +public class DeleteSampleTest extends AbstractDeletionTest { @Test @@ -44,22 +40,74 @@ public class DeleteSampleTest extends AbstractSampleTest { String sessionToken = v3api.login(TEST_USER, PASSWORD); - SamplePermId permId = createSampleToDelete(); + ExperimentPermId experimentPermId = createCisdExperiment(); + SamplePermId samplePermId = createCisdSample(experimentPermId); SampleDeletionOptions options = new SampleDeletionOptions(); options.setReason("It is just a test"); - IDeletionId deletionId = v3api.deleteSamples(sessionToken, Collections.singletonList(permId), options); + assertExperimentExists(experimentPermId); + assertSampleExists(samplePermId); + + IDeletionId deletionId = v3api.deleteSamples(sessionToken, Collections.singletonList(samplePermId), options); + Assert.assertNotNull(deletionId); + + assertExperimentExists(experimentPermId); + assertSampleDoesNotExist(samplePermId); + } + + @Test + public void testDeleteSampleWithDataSet() + { + String sessionToken = v3api.login(TEST_USER, PASSWORD); + + SamplePermId samplePermId = new SamplePermId("200902091225616-1027"); + DataSetPermId dataSetPermId1 = new DataSetPermId("20081105092159333-3"); + DataSetPermId dataSetPermId2 = new DataSetPermId("20110805092359990-17"); + + SampleDeletionOptions options = new SampleDeletionOptions(); + options.setReason("It is just a test"); + + assertSampleExists(samplePermId); + assertDataSetExists(dataSetPermId1); + assertDataSetExists(dataSetPermId2); + + IDeletionId deletionId = v3api.deleteSamples(sessionToken, Collections.singletonList(samplePermId), options); + Assert.assertNotNull(deletionId); + + assertSampleDoesNotExist(samplePermId); + assertDataSetDoesNotExist(dataSetPermId1); + assertDataSetDoesNotExist(dataSetPermId2); + } + + @Test + public void testDeleteSampleWithContainedSamples() + { + String sessionToken = v3api.login(TEST_USER, PASSWORD); + + SamplePermId samplePermId = new SamplePermId("200811050919915-8"); + SamplePermId containedPermId1 = new SamplePermId("200811050919915-9"); + SamplePermId containedPermId2 = new SamplePermId("200811050919915-10"); + + SampleDeletionOptions options = new SampleDeletionOptions(); + options.setReason("It is just a test"); + + assertSampleExists(samplePermId); + assertSampleExists(containedPermId1); + assertSampleExists(containedPermId2); + + IDeletionId deletionId = v3api.deleteSamples(sessionToken, Collections.singletonList(samplePermId), options); Assert.assertNotNull(deletionId); - List<Sample> samples = v3api.listSamples(sessionToken, Collections.singletonList(permId), new SampleFetchOptions()); - Assert.assertEquals(0, samples.size()); + assertSampleDoesNotExist(samplePermId); + assertSampleDoesNotExist(containedPermId1); + assertSampleDoesNotExist(containedPermId2); } @Test public void testDeleteSampleWithUnauthorizedSample() { - final SamplePermId permId = createSampleToDelete(); + final SamplePermId permId = createCisdSample(null); assertUnauthorizedObjectAccessException(new IDelegatedAction() { @@ -76,22 +124,4 @@ public class DeleteSampleTest extends AbstractSampleTest }, permId); } - private SamplePermId createSampleToDelete() - { - final String sessionToken = v3api.login(TEST_USER, PASSWORD); - - SampleCreation creation = new SampleCreation(); - creation.setCode("SAMPLE_TO_DELETE"); - creation.setTypeId(new EntityTypePermId("CELL_PLATE")); - creation.setSpaceId(new SpacePermId("CISD")); - - List<SamplePermId> permIds = v3api.createSamples(sessionToken, Collections.singletonList(creation)); - List<Sample> samples = v3api.listSamples(sessionToken, permIds, new SampleFetchOptions()); - - Assert.assertEquals(1, samples.size()); - Assert.assertEquals("SAMPLE_TO_DELETE", samples.get(0).getCode()); - - return permIds.get(0); - } - } diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/ListDeletionTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/ListDeletionTest.java index 83d609021ac5b95133262558d72257b4f764c142..fcbb82bdaa01df6064f929b3bf7d09ce98f18f3c 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/ListDeletionTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/ListDeletionTest.java @@ -45,8 +45,8 @@ public class ListDeletionTest extends AbstractDeletionTest DeletionFetchOptions fetchOptions = new DeletionFetchOptions(); List<Deletion> beforeDeletions = v3api.listDeletions(sessionToken, fetchOptions); - ExperimentPermId experimentId = createExperimentToDelete(); - SamplePermId sampleId = createSampleToDelete(experimentId); + ExperimentPermId experimentId = createCisdExperiment(); + SamplePermId sampleId = createCisdSample(experimentId); ExperimentDeletionOptions deletionOptions = new ExperimentDeletionOptions(); deletionOptions.setReason("It is just a test"); @@ -79,11 +79,15 @@ public class ListDeletionTest extends AbstractDeletionTest fetchOptions.fetchDeletedObjects(); List<Deletion> beforeDeletions = v3api.listDeletions(sessionToken, fetchOptions); - ExperimentPermId experimentId = createExperimentToDelete(); - SamplePermId sampleId = createSampleToDelete(experimentId); + ExperimentPermId experimentId = createCisdExperiment(); + SamplePermId sampleId = createCisdSample(experimentId); ExperimentDeletionOptions deletionOptions = new ExperimentDeletionOptions(); deletionOptions.setReason("It is just a test"); + + assertExperimentExists(experimentId); + assertSampleExists(sampleId); + IDeletionId deletionId = v3api.deleteExperiments(sessionToken, Collections.singletonList(experimentId), deletionOptions); assertExperimentDoesNotExist(experimentId); @@ -108,7 +112,7 @@ public class ListDeletionTest extends AbstractDeletionTest String adminSessionToken = v3api.login(TEST_USER, PASSWORD); - ExperimentPermId experimentId = createExperimentToDelete(); + ExperimentPermId experimentId = createCisdExperiment(); ExperimentDeletionOptions deletionOptions = new ExperimentDeletionOptions(); deletionOptions.setReason("It is just a test"); v3api.deleteExperiments(adminSessionToken, Collections.singletonList(experimentId), deletionOptions); diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/RevertDeletionTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/RevertDeletionTest.java index 6cdb8a2b348543afaa0d48750777b112b353290a..19b28ee6045d9874cf464aff7f0fcbf0a2b800e8 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/RevertDeletionTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/RevertDeletionTest.java @@ -21,6 +21,8 @@ import java.util.Collections; import org.testng.annotations.Test; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.deletion.experiment.ExperimentDeletionOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.deletion.sample.SampleDeletionOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.dataset.DataSetPermId; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.deletion.DeletionTechId; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.deletion.IDeletionId; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.experiment.ExperimentPermId; @@ -38,11 +40,15 @@ public class RevertDeletionTest extends AbstractDeletionTest { String sessionToken = v3api.login(TEST_USER, PASSWORD); - ExperimentPermId experimentId = createExperimentToDelete(); - SamplePermId sampleId = createSampleToDelete(experimentId); + ExperimentPermId experimentId = createCisdExperiment(); + SamplePermId sampleId = createCisdSample(experimentId); ExperimentDeletionOptions deletionOptions = new ExperimentDeletionOptions(); deletionOptions.setReason("It is just a test"); + + assertExperimentExists(experimentId); + assertSampleExists(sampleId); + IDeletionId deletionId = v3api.deleteExperiments(sessionToken, Collections.singletonList(experimentId), deletionOptions); assertDeletionExists(deletionId); @@ -56,6 +62,37 @@ public class RevertDeletionTest extends AbstractDeletionTest assertSampleExists(sampleId); } + @Test + public void testRevertDeletionOfSampleWithDataSet() + { + String sessionToken = v3api.login(TEST_USER, PASSWORD); + + SamplePermId sampleId = new SamplePermId("200902091225616-1027"); + DataSetPermId dataSetId1 = new DataSetPermId("20081105092159333-3"); + DataSetPermId dataSetId2 = new DataSetPermId("20110805092359990-17"); + + SampleDeletionOptions deletionOptions = new SampleDeletionOptions(); + deletionOptions.setReason("It is just a test"); + + assertSampleExists(sampleId); + assertDataSetExists(dataSetId1); + assertDataSetExists(dataSetId2); + + IDeletionId deletionId = v3api.deleteSamples(sessionToken, Collections.singletonList(sampleId), deletionOptions); + + assertDeletionExists(deletionId); + assertSampleDoesNotExist(sampleId); + assertDataSetDoesNotExist(dataSetId1); + assertDataSetDoesNotExist(dataSetId2); + + v3api.revertDeletions(sessionToken, Collections.singletonList(deletionId)); + + assertDeletionDoesNotExist(deletionId); + assertSampleExists(sampleId); + assertDataSetExists(dataSetId1); + assertDataSetExists(dataSetId2); + } + @Test public void testRevertDeletionWithNonexistentDeletion() { @@ -77,7 +114,7 @@ public class RevertDeletionTest extends AbstractDeletionTest { String sessionToken = v3api.login(TEST_USER, PASSWORD); - ExperimentPermId experimentId = createExperimentToDelete(); + ExperimentPermId experimentId = createCisdExperiment(); ExperimentDeletionOptions deletionOptions = new ExperimentDeletionOptions(); deletionOptions.setReason("It is just a test"); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/SystemTestCase.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/SystemTestCase.java index 8dfbbaa6752e56ed9ff03f28531caeb7e6d26c4f..0f38d319ce50d898fbb0f1781b886529db6ab85a 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/SystemTestCase.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/SystemTestCase.java @@ -38,7 +38,6 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; import org.testng.annotations.BeforeSuite; -import ch.ethz.sis.openbis.generic.shared.api.v3.IApplicationServerApi; import ch.systemsx.cisd.common.servlet.SpringRequestContextProvider; import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientService; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GridRowModels; @@ -92,8 +91,6 @@ public abstract class SystemTestCase extends AbstractTransactionalTestNGSpringCo protected IServiceForDataStoreServer etlService; - protected IApplicationServerApi v3api; - protected MockHttpServletRequest request; protected String systemSessionToken; @@ -176,12 +173,6 @@ public abstract class SystemTestCase extends AbstractTransactionalTestNGSpringCo } - @Autowired - public void setApplicationServerApi(IApplicationServerApi applicationServerApi) - { - this.v3api = applicationServerApi; - } - protected SessionContext logIntoCommonClientService() { SessionContext context = commonClientService.tryToLogin("test", "a");