From 6510995761e68eff6216a69ebfecee4c8ca02535 Mon Sep 17 00:00:00 2001 From: pkupczyk <pkupczyk> Date: Fri, 17 Apr 2015 12:11:10 +0000 Subject: [PATCH] SSDM-1706 : V3 AS API - make it possible to fetch a history of properties of an entity - bug fixes SVN: 33881 --- .../entity/history/HistoryTranslator.java | 2 + .../systemtest/api/v3/MapSampleTest.java | 41 ++++++++++++++++++- 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/history/HistoryTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/history/HistoryTranslator.java index f7fd6774100..539b5f92eb8 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/history/HistoryTranslator.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/history/HistoryTranslator.java @@ -94,12 +94,14 @@ public class HistoryTranslator extends AbstractCachingTranslator<IEntityInformat if (entry != null) { + entry.setFetchOptions(new HistoryEntryFetchOptions()); entry.setValidFrom(peEntry.getValidFromDate()); entry.setValidTo(peEntry.getValidUntilDate()); if (fetchOptions.hasAuthor()) { entry.setAuthor(personTranslator.translate(context, peEntry.getAuthor(), fetchOptions.withAuthor())); + entry.getFetchOptions().withAuthorUsing(fetchOptions.withAuthor()); } entries.add(entry); diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/MapSampleTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/MapSampleTest.java index 7bfb6089ea7..11725cfc7d0 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/MapSampleTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/MapSampleTest.java @@ -24,6 +24,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; +import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -1034,6 +1035,41 @@ public class MapSampleTest extends AbstractSampleTest assertEquals(history, Collections.emptyList()); } + @Test(enabled = false) + public void testMapWithHistoryDates() + { + String sessionToken = v3api.login(TEST_USER, PASSWORD); + + Date start = new Date(); + + SampleUpdate update = new SampleUpdate(); + update.setSampleId(new SamplePermId("200902091219327-1025")); + update.setProperty("SIZE", "12"); + + v3api.updateSamples(sessionToken, Arrays.asList(update)); + + SampleFetchOptions fetchOptions = new SampleFetchOptions(); + fetchOptions.withHistory(); + + Map<ISampleId, Sample> map = v3api.mapSamples(sessionToken, Arrays.asList(update.getSampleId()), fetchOptions); + + Date end = new Date(); + + Sample sample = map.get(update.getSampleId()); + + List<HistoryEntry> history = sample.getHistory(); + assertEquals(history.size(), 1); + + PropertyHistoryEntry entry = (PropertyHistoryEntry) history.get(0); + assertEquals(entry.getPropertyName(), "SIZE"); + assertEquals(entry.getPropertyValue(), "123"); + + assertTrue(entry.getValidFrom().after(start)); + assertTrue(entry.getValidFrom().before(end)); + assertTrue(entry.getValidTo().after(entry.getValidFrom())); + assertTrue(entry.getValidTo().before(end)); + } + @Test public void testMapWithHistoryProperty() { @@ -1053,6 +1089,9 @@ public class MapSampleTest extends AbstractSampleTest PropertyHistoryEntry entry = (PropertyHistoryEntry) history.get(0); assertEquals(entry.getPropertyName(), "COMMENT"); assertEquals(entry.getPropertyValue(), "comment1"); + assertTrue(entry.getValidFrom() != null); + assertTrue(entry.getValidTo() != null); + assertEquals(entry.getAuthor().getUserId(), TEST_USER); } @Test @@ -1234,7 +1273,7 @@ public class MapSampleTest extends AbstractSampleTest } SampleFetchOptions fetchOptions = new SampleFetchOptions(); - fetchOptions.withHistory(); + fetchOptions.withHistory().withAuthor(); Map<ISampleId, Sample> map = v3api.mapSamples(sessionToken, permIds, fetchOptions); -- GitLab