diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/DeletionTestCase.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/DeletionTestCase.java index 6f11b0a965cfeb55df4ee6ccdb5294a76e014f08..4cb5da1b67c46c4f7babad83c40d5fed6623adc8 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/DeletionTestCase.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/DeletionTestCase.java @@ -53,6 +53,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperiment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PhysicalDataSet; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleParentWithDerived; @@ -230,9 +231,10 @@ public class DeletionTestCase extends NonTransactionalSystemTestCase public void testDeleteExperimentWithContainerDataSetWhichHasADataSetFromAnotherExperiment() { // Change experiment of data set 'COMPONENT_1B' to 'E1' + TechId dataSetId = new TechId(34); + PhysicalDataSet originalDataSet = genericServer.getDataSetInfo(sessionToken, dataSetId).tryGetAsDataSet(); Experiment e1 = findExperimentByCode("E1"); DataSetUpdatesDTO updatesDTO = new DataSetUpdatesDTO(); - TechId dataSetId = new TechId(34); updatesDTO.setDatasetId(dataSetId); updatesDTO.setExperimentIdentifierOrNull(new ExperimentIdentifier(e1)); updatesDTO.setFileFormatTypeCode("XML"); @@ -243,6 +245,19 @@ public class DeletionTestCase extends NonTransactionalSystemTestCase commonServer.deleteExperiments(sessionToken, Arrays.asList(new TechId(8)), REASON, DeletionType.TRASH); assertEquals(null, commonServer.getDataSetInfo(sessionToken, dataSetId).getDeletion()); + List<DeletionPE> deletions = listDeletions(); + assertEquals(1, deletions.size()); + + // revert deletion and data set COMPONENT_1B in order to restore database state + TechId deletionId1 = TechId.create(deletions.get(0)); + commonServer.revertDeletions(sessionToken, Collections.singletonList(deletionId1)); + updatesDTO = new DataSetUpdatesDTO(); + updatesDTO.setDatasetId(dataSetId); + updatesDTO.setExperimentIdentifierOrNull(new ExperimentIdentifier(originalDataSet.getExperiment())); + updatesDTO.setFileFormatTypeCode(originalDataSet.getFileFormatType().getCode()); + updatesDTO.setProperties(originalDataSet.getProperties()); + updatesDTO.setVersion(genericServer.getDataSetInfo(sessionToken, dataSetId).getVersion()); + genericServer.updateDataSet(sessionToken, updatesDTO); } @Test