From 1b09b5dd972600454887da6053b70b68e428b2f4 Mon Sep 17 00:00:00 2001 From: kaloyane <kaloyane> Date: Mon, 8 Aug 2011 11:39:09 +0000 Subject: [PATCH] [LMS-2441] minor: added test for multiple sample deletion SVN: 22405 --- .../server/dataaccess/db/SampleDAOTest.java | 63 ++++++++++++++----- 1 file changed, 48 insertions(+), 15 deletions(-) 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 c125e4f3e98..9b06f096661 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 @@ -36,6 +36,8 @@ import org.testng.AssertJUnit; import org.testng.annotations.Test; import ch.rinn.restrictions.Friend; +import ch.systemsx.cisd.common.collections.CollectionStyle; +import ch.systemsx.cisd.common.collections.CollectionUtils; import ch.systemsx.cisd.openbis.generic.server.business.bo.util.SampleOwner; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IEventDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.ISampleDAO; @@ -301,7 +303,7 @@ public final class SampleDAOTest extends AbstractDAOTest assertNotNull(experiment); // delete - deleteSample(sampleToDelete); + deleteSamples(sampleToDelete); // test successful deletion of sample assertNull(sampleDAO.tryGetByTechId(TechId.create(sampleToDelete))); @@ -314,23 +316,54 @@ public final class SampleDAOTest extends AbstractDAOTest new TechId(HibernateUtils.getId(experiment)))); } - private void deleteSample(SamplePE sample) + public final void testDeleteMultipleSamples() + { + final ISampleDAO sampleDAO = daoFactory.getSampleDAO(); + final SamplePE sample1 = findSample("3VCP5", "CISD"); + final SamplePE sample2 = findSample("EMPTY-MP", "CISD"); + + // delete + deleteSamples(new SamplePE[] + { sample1, sample2 }); + + // test successful deletion of sample + assertNull(sampleDAO.tryGetByTechId(TechId.create(sample1))); + assertNull(sampleDAO.tryGetByTechId(TechId.create(sample2))); + } + + private void deleteSamples(SamplePE... samples) { // before deletion there shouldn't be any entry about deletion of the sample in event table - assertNull(tryGetDeletionEvent(sample)); + for (SamplePE sample : samples) + { + assertNull(tryGetDeletionEvent(sample)); + } - List<TechId> sampleIds = new ArrayList<TechId>(); - sampleIds.add(TechId.create(sample)); final PersonPE registrator = getSystemPerson(); - final String reason = "reason" + sample.getPermId(); + List<TechId> sampleIds = new ArrayList<TechId>(); + List<String> identifiers = new ArrayList<String>(); + + for (SamplePE sample : samples) + { + identifiers.add(sample.getPermId()); + sampleIds.add(TechId.create(sample)); + } + + String commaSeparatedIdentifiers = + CollectionUtils.abbreviate(identifiers, -1, CollectionStyle.NO_BOUNDARY); + final String reason = "reason " + commaSeparatedIdentifiers; daoFactory.getSampleDAO().delete(sampleIds, registrator, reason); // after deletion there should be an entry about deletion of the sample in event table - final EventPE event = tryGetDeletionEvent(sample); - assertNotNull(event); - assertEquals(reason, event.getReason()); - assertEquals(registrator, event.getRegistrator()); + for (SamplePE sample : samples) + { + final EventPE event = tryGetDeletionEvent(sample); + assertNotNull(event); + assertEquals(reason, event.getReason()); + assertEquals(commaSeparatedIdentifiers, event.getIdentifiers()); + assertEquals(registrator, event.getRegistrator()); + } } private EventPE tryGetDeletionEvent(SamplePE sample) @@ -356,7 +389,7 @@ public final class SampleDAOTest extends AbstractDAOTest int beforeDeletionPropertiesRowCount = countRowsInTable(TableNames.SAMPLE_PROPERTIES_TABLE); // delete - deleteSample(sampleToDelete); + deleteSamples(sampleToDelete); // test successful deletion of sample assertNull(sampleDAO.tryGetByTechId(TechId.create(sampleToDelete))); @@ -387,7 +420,7 @@ public final class SampleDAOTest extends AbstractDAOTest int rowsInAttachmentContents = countRowsInTable(ATT_CONTENTS_TABLE); // delete - deleteSample(sampleToDelete); + deleteSamples(sampleToDelete); // test successful deletion of sample assertNull(sampleDAO.tryGetByTechId(TechId.create(sampleToDelete))); @@ -414,7 +447,7 @@ public final class SampleDAOTest extends AbstractDAOTest assertTrue(sampleToDelete.getContained().isEmpty()); // delete - deleteSample(sampleToDelete); + deleteSamples(sampleToDelete); } @Test(expectedExceptions = DataIntegrityViolationException.class, groups = "broken") @@ -431,7 +464,7 @@ public final class SampleDAOTest extends AbstractDAOTest assertTrue(sampleToDelete.getContained().isEmpty()); // delete - deleteSample(sampleToDelete); + deleteSamples(sampleToDelete); } @Test(expectedExceptions = DataIntegrityViolationException.class) @@ -447,7 +480,7 @@ public final class SampleDAOTest extends AbstractDAOTest assertFalse(sampleToDelete.getContained().isEmpty()); // delete - deleteSample(sampleToDelete); + deleteSamples(sampleToDelete); } private SpacePE findSpace(String spaceCode) -- GitLab