diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/PersonTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/PersonTranslator.java index cc0533492c7fc80e155b17a86e9995992229ae2c..33ba2473f6e196462e972df35a7fda31bdfa5230 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/PersonTranslator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/PersonTranslator.java @@ -40,14 +40,14 @@ public class PersonTranslator final List<Person> result = new ArrayList<Person>(); for (final PersonPE person : persons) { - result.add(PersonTranslator.translate(person)); + result.add(PersonTranslator.translate(person, true)); } return result; } public final static Person translate(final PersonPE person) { - return translate(person, true); + return translate(person, false); } private final static Person translate(final PersonPE person, final boolean recursively) diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java index 8673d8ad09ad42e65ff3c09eae7656de69bfe8a0..5d44bbe67eac39e71a933a11d89865dc9a0e2f65 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java @@ -19,12 +19,14 @@ package ch.systemsx.cisd.openbis.generic.server; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Set; import org.apache.commons.lang.builder.EqualsBuilder; +import org.apache.commons.lang.time.DateUtils; import org.hamcrest.core.IsEqual; import org.jmock.Expectations; import org.springframework.dao.DataIntegrityViolationException; @@ -44,6 +46,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BatchOperationKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletionType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DisplaySettings; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; @@ -74,6 +77,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetUploadContext; import ch.systemsx.cisd.openbis.generic.shared.dto.DataStorePE; import ch.systemsx.cisd.openbis.generic.shared.dto.DataTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.DatabaseInstancePE; +import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE; import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE; import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentTypePE; @@ -96,9 +100,9 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier; import ch.systemsx.cisd.openbis.generic.shared.translator.DataSetTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.DtoConverters; import ch.systemsx.cisd.openbis.generic.shared.translator.ExperimentTranslator; -import ch.systemsx.cisd.openbis.generic.shared.translator.SpaceTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.MaterialTypeTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.PersonTranslator; +import ch.systemsx.cisd.openbis.generic.shared.translator.SpaceTranslator; /** * Test cases for corresponding {@link CommonServer} class. @@ -700,6 +704,25 @@ public final class CommonServerTest extends AbstractServerTestCase context.assertIsSatisfied(); } + private static DeletionPE createDeletion(String registrator, Date registrationDate, + String reason) + { + final DeletionPE result = new DeletionPE(); + final PersonPE person = new PersonPE(); + person.setUserId(registrator); + result.setRegistrator(person); + result.setRegistrationDate(registrationDate); + result.setReason(reason); + return result; + } + + private static void assertEqualContent(DeletionPE deletionPE, Deletion deletion) + { + assertEquals(deletionPE.getReason(), deletion.getReason()); + assertEquals(deletionPE.getRegistrationDate(), deletion.getRegistrationDate()); + assertEquals(deletionPE.getRegistrator().getUserId(), deletion.getRegistrator().getUserId()); + } + @Test public void testListPropertyTypes() { @@ -1583,4 +1606,31 @@ public final class CommonServerTest extends AbstractServerTestCase assertEquals(experimentPE.getPermId(), experiment.getPermId()); context.assertIsSatisfied(); } + + @Test + public void testListDeletions() + { + // tests listing, sorting by date and translation + prepareGetSession(); + + Date currentDate = new Date(); + final DeletionPE del1 = createDeletion("p1", DateUtils.addHours(currentDate, -1), "r1"); + final DeletionPE del2 = createDeletion("p2", currentDate, "r2"); + final DeletionPE del3 = createDeletion("p3", DateUtils.addDays(currentDate, 1), "r3"); + + context.checking(new Expectations() + { + { + one(deletionDAO).listAllEntities(); + will(returnValue(Arrays.asList(del2, del1, del3))); + } + }); + List<Deletion> result = createServer().listDeletions(SESSION_TOKEN); + + assertEquals(3, result.size()); + assertEqualContent(del1, result.get(0)); + assertEqualContent(del2, result.get(1)); + assertEqualContent(del3, result.get(2)); + context.assertIsSatisfied(); + } } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/AbstractServerTestCase.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/AbstractServerTestCase.java index 7b7d20b5059bf9e6a2120d5a62358a680bccd1e7..8e1b56d5b83bbb230fbbc8be281dc73174948c22 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/AbstractServerTestCase.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/AbstractServerTestCase.java @@ -56,6 +56,7 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataSetTypeDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataStoreDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDatabaseInstanceDAO; +import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDeletionDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IEntityTypeDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IExperimentDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IFileFormatTypeDAO; @@ -143,6 +144,8 @@ public abstract class AbstractServerTestCase extends AssertJUnit protected IProjectDAO projectDAO; + protected IDeletionDAO deletionDAO; + protected IExperimentBO experimentBO; protected ISampleTypeDAO sampleTypeDAO; @@ -211,6 +214,7 @@ public abstract class AbstractServerTestCase extends AssertJUnit vocabularyDAO = context.mock(IVocabularyDAO.class); dataStoreDAO = context.mock(IDataStoreDAO.class); queryDAO = context.mock(IQueryDAO.class); + deletionDAO = context.mock(IDeletionDAO.class); // BO groupBO = context.mock(IGroupBO.class); entityTypeBO = context.mock(IEntityTypeBO.class); @@ -263,6 +267,8 @@ public abstract class AbstractServerTestCase extends AssertJUnit will(returnValue(dataSetTypeDAO)); allowing(daoFactory).getDataStoreDAO(); will(returnValue(dataStoreDAO)); + allowing(daoFactory).getDeletionDAO(); + will(returnValue(deletionDAO)); } }); }