diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAOTest.java index ff19599df098de0da27fda436742994f32ca8a87..c7e3e845b4c60bd7da362d8f3a855bc754ceeebb 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAOTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAOTest.java @@ -23,6 +23,7 @@ import static org.testng.AssertJUnit.assertNull; import static org.testng.AssertJUnit.assertTrue; import static org.testng.AssertJUnit.fail; +import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; @@ -312,24 +313,33 @@ public final class SampleDAOTest extends AbstractDAOTest assertTrue(deletedSample.getGenerated().isEmpty()); assertTrue(deletedSample.getContained().isEmpty()); + SamplePE generatedFrom = deletedSample.getGeneratedFrom(); + assertNotNull(generatedFrom); + ExperimentPE experiment = deletedSample.getExperiment(); + assertNotNull(experiment); + // delete - sampleDAO.delete(deletedSample); + deleteSample(deletedSample); // test successful deletion of sample assertNull(sampleDAO.tryGetByTechId(TechId.create(deletedSample))); - // deleted sample had objects connected that should not have been deleted: + // deleted sample had objects connected that should not be deleted: // - a parent - SamplePE generatedFrom = deletedSample.getGeneratedFrom(); - assertNotNull(generatedFrom); assertNotNull(sampleDAO.tryGetByTechId(new TechId(HibernateUtils.getId(generatedFrom)))); // - an experiment - ExperimentPE experiment = deletedSample.getExperiment(); - assertNotNull(experiment); assertNotNull(daoFactory.getExperimentDAO().tryGetByTechId( new TechId(HibernateUtils.getId(experiment)))); } + private void deleteSample(SamplePE sample) + { + final ISampleDAO sampleDAO = daoFactory.getSampleDAO(); + List<TechId> sampleIds = new ArrayList<TechId>(); + sampleIds.add(TechId.create(sample)); + sampleDAO.delete(sampleIds, getSystemPerson(), "reason"); + } + @Test public final void testDeleteWithProperties() { @@ -341,15 +351,15 @@ public final class SampleDAOTest extends AbstractDAOTest assertTrue(deletedSample.getDatasets().isEmpty()); assertTrue(deletedSample.getGenerated().isEmpty()); assertTrue(deletedSample.getContained().isEmpty()); + assertFalse(deletedSample.getProperties().isEmpty()); // delete - sampleDAO.delete(deletedSample); + deleteSample(deletedSample); // test successful deletion of sample assertNull(sampleDAO.tryGetByTechId(TechId.create(deletedSample))); // test successful deletion of sample properties - assertFalse(deletedSample.getProperties().isEmpty()); List<EntityTypePropertyTypePE> retrievedPropertyTypes = daoFactory.getEntityPropertyTypeDAO(EntityKind.SAMPLE).listEntityPropertyTypes( deletedSample.getEntityType()); @@ -361,10 +371,9 @@ public final class SampleDAOTest extends AbstractDAOTest } } - @Test + @Test(expectedExceptions = DataIntegrityViolationException.class) public final void testDeleteFailWithAttachments() { - final ISampleDAO sampleDAO = daoFactory.getSampleDAO(); final SamplePE deletedSample = findSample("3VCP6", "CISD"); // Deleted sample should have attachments which prevent it from deletion. @@ -375,13 +384,12 @@ public final class SampleDAOTest extends AbstractDAOTest assertTrue(deletedSample.getContained().isEmpty()); // delete - sampleDAO.delete(deletedSample); + deleteSample(deletedSample); } @Test(expectedExceptions = DataIntegrityViolationException.class) public final void testDeleteFailWithDatasets() { - final ISampleDAO sampleDAO = daoFactory.getSampleDAO(); final SamplePE deletedSample = findSample("CP-TEST-1", "CISD"); // Deleted sample should have data sets which prevent it from deletion. @@ -392,13 +400,12 @@ public final class SampleDAOTest extends AbstractDAOTest assertTrue(deletedSample.getContained().isEmpty()); // delete - sampleDAO.delete(deletedSample); + deleteSample(deletedSample); } @Test(expectedExceptions = DataIntegrityViolationException.class) public final void testDeleteFailWithGeneratedSamples() { - final ISampleDAO sampleDAO = daoFactory.getSampleDAO(); final SamplePE deletedSample = findSample("3VCP2", "CISD"); // Deleted sample should have 'generated' samples which prevent it from deletion. @@ -409,13 +416,12 @@ public final class SampleDAOTest extends AbstractDAOTest assertTrue(deletedSample.getContained().isEmpty()); // delete - sampleDAO.delete(deletedSample); + deleteSample(deletedSample); } @Test(expectedExceptions = DataIntegrityViolationException.class) public final void testDeleteFailWithContainedSamples() { - final ISampleDAO sampleDAO = daoFactory.getSampleDAO(); final SamplePE deletedSample = findSample("C1", "CISD"); // Deleted sample should have 'contained' samples which prevent it from deletion. @@ -426,7 +432,7 @@ public final class SampleDAOTest extends AbstractDAOTest assertFalse(deletedSample.getContained().isEmpty()); // delete - sampleDAO.delete(deletedSample); + deleteSample(deletedSample); } @Test