From e5d5969fc44821d38120031ac030ca2ae9ea655e Mon Sep 17 00:00:00 2001 From: Piyush Joshi <89912489+pjoshi31@users.noreply.github.com> Date: Wed, 22 Feb 2023 10:21:59 +0530 Subject: [PATCH] [ACS-3960][ACS-4339] Count is only returned for a tag if it is greater than zero (#1755) * Added fix for ACS-3960 * Added fix for ACS-3960 * Added fix for ACS-3960 * Added formatting * Added Fix for ACS-3960 * Revert "Added Fix for ACS-3960" This reverts commit c06dba2d93a9a31e1039aaf1b85f6dbdade2de11. * Addressed review comment Co-authored-by: Tom Page * Issue Fixed and added unit test cases. * Removed extra assertion in testcases. --------- Co-authored-by: suneet.gupta Co-authored-by: Tom Page --- .../java/org/alfresco/rest/api/impl/TagsImpl.java | 2 +- .../org/alfresco/rest/api/impl/TagsImplTest.java | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/remote-api/src/main/java/org/alfresco/rest/api/impl/TagsImpl.java b/remote-api/src/main/java/org/alfresco/rest/api/impl/TagsImpl.java index 266993d93e..04366331ab 100644 --- a/remote-api/src/main/java/org/alfresco/rest/api/impl/TagsImpl.java +++ b/remote-api/src/main/java/org/alfresco/rest/api/impl/TagsImpl.java @@ -179,7 +179,7 @@ public class TagsImpl implements Tags for (Pair pair : page) { Tag selectedTag = new Tag(pair.getFirst(), pair.getSecond()); - selectedTag.setCount(tagsByCountMap.get(selectedTag.getTag())); + selectedTag.setCount(Optional.ofNullable(tagsByCountMap.get(selectedTag.getTag())).orElse(0)); tags.add(selectedTag); } diff --git a/remote-api/src/test/java/org/alfresco/rest/api/impl/TagsImplTest.java b/remote-api/src/test/java/org/alfresco/rest/api/impl/TagsImplTest.java index 6593d0366c..da9cc933a3 100644 --- a/remote-api/src/test/java/org/alfresco/rest/api/impl/TagsImplTest.java +++ b/remote-api/src/test/java/org/alfresco/rest/api/impl/TagsImplTest.java @@ -29,6 +29,7 @@ import static org.alfresco.rest.api.impl.TagsImpl.NOT_A_VALID_TAG; import static org.alfresco.rest.api.impl.TagsImpl.NO_PERMISSION_TO_MANAGE_A_TAG; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.catchThrowable; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.given; @@ -83,6 +84,18 @@ public class TagsImplTest given(nodesMock.validateNode(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, TAG_ID)).willReturn(TAG_NODE_REF); given(taggingServiceMock.getTagName(TAG_NODE_REF)).willReturn(TAG_NAME); } + @Test + public void testGetTags() { + final List tagNames = List.of("testTag","tag11"); + final List tagsToCreate = createTags(tagNames); + given(taggingServiceMock.createTags(any(), any())).willAnswer(invocation -> createTagAndNodeRefPairs(invocation.getArgument(1))); + given(parametersMock.getInclude()).willReturn(List.of("count")); + final List actualCreatedTags = objectUnderTest.createTags(tagsToCreate, parametersMock); + final List expectedTags = createTagsWithNodeRefs(tagNames).stream() + .peek(tag -> tag.setCount(0)) + .collect(Collectors.toList()); + assertEquals(expectedTags, actualCreatedTags); + } @Test public void testDeleteTagById()