Skip to content

Commit 71edb47

Browse files
committed
Fixed: contributor names retrieved in dataset version summaries
1 parent b26a14d commit 71edb47

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

src/main/java/edu/harvard/iq/dataverse/engine/command/impl/GetDatasetVersionSummariesCommand.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,9 @@ public GetDatasetVersionSummariesCommand(DataverseRequest request, Dataset datas
3030
* <p>
3131
* This method first checks if the user has permission to view unpublished
3232
* versions of the dataset. It then fetches the appropriate {@link DatasetVersion}s,
33-
* respecting pagination parameters (limit and offset), and converts each
34-
* version into a {@link DatasetVersionSummary}.
33+
* respecting pagination parameters (limit and offset). Each version is then
34+
* enriched with its contributor names before being converted into a
35+
* {@link DatasetVersionSummary}.
3536
*
3637
* @param ctxt The command context.
3738
* @return A list of {@link DatasetVersionSummary} objects.
@@ -52,6 +53,10 @@ public List<DatasetVersionSummary> executeCommand(CommandContext ctxt) {
5253
true
5354
);
5455

56+
for (DatasetVersion version : versions) {
57+
version.setContributorNames(ctxt.datasetVersion().getContributorsNames(version));
58+
}
59+
5560
return versions.stream()
5661
.map(DatasetVersionSummary::from)
5762
.flatMap(Optional::stream)

src/test/java/edu/harvard/iq/dataverse/api/DatasetsIT.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6537,8 +6537,10 @@ public void testSummaryDatasetVersionsDifferencesAPI() throws InterruptedExcepti
65376537
.body("totalCount", is(2))
65386538
.body("data.size()", is(2))
65396539
.body("data[1].versionNumber", equalTo("1.0"))
6540+
.body("data[1].contributors", notNullValue())
65406541
.body("data[1].summary", equalTo("firstPublished"))
65416542
.body("data[0].versionNumber", equalTo("DRAFT"))
6543+
.body("data[0].contributors", notNullValue())
65426544
.body("data[0].summary.'Citation Metadata'.Author.added", equalTo(2))
65436545
.body("data[0].summary.'Citation Metadata'.Subject.added", equalTo(2))
65446546
.body("data[0].summary.'Additional Citation Metadata'.changed", equalTo(0))

src/test/java/edu/harvard/iq/dataverse/engine/command/impl/GetDatasetVersionSummariesCommandTest.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,13 +144,17 @@ void execute_should_pass_pagination_parameters_correctly() throws CommandExcepti
144144
}
145145

146146
@Test
147-
@DisplayName("execute should correctly convert DatasetVersion list to DatasetVersionSummary list")
148-
void execute_should_convert_versions_to_summaries() throws CommandException {
147+
@DisplayName("execute should enrich contributors and convert versions to summaries")
148+
void execute_should_enrich_contributors_and_convert_to_summaries() throws CommandException {
149149
// Arrange
150150
setupMocksForSuccessfulExecution();
151151
when(versionServiceMock.findVersions(anyLong(), any(), any(), anyBoolean(), anyBoolean()))
152152
.thenReturn(List.of(versionMock));
153153

154+
// Arrange: Mock contributor names retrieval
155+
String expectedContributors = "Contributor";
156+
when(versionServiceMock.getContributorsNames(versionMock)).thenReturn(expectedContributors);
157+
154158
// Arrange: Prepare a dummy summary object
155159
DatasetVersionSummary dummySummary = new DatasetVersionSummary(1L, "V1", null, null, null, null);
156160

@@ -165,6 +169,10 @@ void execute_should_convert_versions_to_summaries() throws CommandException {
165169
List<DatasetVersionSummary> result = command.execute(contextMock);
166170

167171
// Assert
172+
verify(versionServiceMock).getContributorsNames(versionMock);
173+
verify(versionMock).setContributorNames(expectedContributors);
174+
175+
// Verify final conversion
168176
assertThat(result)
169177
.isNotNull()
170178
.hasSize(1)

0 commit comments

Comments
 (0)