diff --git a/packaging/tests/tas-restapi/src/test/java/org/alfresco/rest/tags/CreateTagsTests.java b/packaging/tests/tas-restapi/src/test/java/org/alfresco/rest/tags/CreateTagsTests.java index cfe028d10f..bae8baae9e 100644 --- a/packaging/tests/tas-restapi/src/test/java/org/alfresco/rest/tags/CreateTagsTests.java +++ b/packaging/tests/tas-restapi/src/test/java/org/alfresco/rest/tags/CreateTagsTests.java @@ -128,7 +128,7 @@ public class CreateTagsTests extends RestTest final String repeatedTagName = getRandomName(TAG_NAME_PREFIX).toLowerCase(); final List tagModels = List.of( createTagModelWithName(repeatedTagName), - createTagModelWithRandomName(), + createTagModelWithName(getRandomName(TAG_NAME_PREFIX).toLowerCase()), createTagModelWithName(repeatedTagName) ); @@ -173,13 +173,17 @@ public class CreateTagsTests extends RestTest public void testCreateTag_usingAlreadyExistingTagName() { STEP("Create some tag in the system"); - final RestTagModel alreadyExistingTag = prepareOrphanTag(); + final RestTagModel tagToCreate = createTagModelWithRandomName(); + final RestTagModel alreadyExistingTag = prepareOrphanTag(tagToCreate); + // set original name instead the case lowered one + alreadyExistingTag.setTag(tagToCreate.getTag()); STEP("Try to use already existing tag to create duplicate and expect 409"); restClient.authenticateUser(admin).withCoreAPI().createSingleTag(alreadyExistingTag); - restClient.assertStatusCodeIs(CONFLICT); - restClient.assertLastError().containsSummary("Duplicate child name not allowed: " + alreadyExistingTag.getTag()); + restClient + .assertStatusCodeIs(CONFLICT) + .assertLastError().containsSummary("Duplicate child name not allowed: " + alreadyExistingTag.getTag().toLowerCase()); } /** @@ -189,7 +193,7 @@ public class CreateTagsTests extends RestTest public void testCreateTag_includingCount() { STEP("Create single tag as admin including count and verify if it is 0"); - final RestTagModel tagModel = createTagModelWithRandomName(); + final RestTagModel tagModel = createTagModelWithName(getRandomName(TAG_NAME_PREFIX).toLowerCase()); final RestTagModel createdTag = restClient.authenticateUser(admin).withCoreAPI().include(FIELD_COUNT).createSingleTag(tagModel); restClient.assertStatusCodeIs(CREATED); @@ -198,9 +202,13 @@ public class CreateTagsTests extends RestTest .assertThat().field(FIELD_COUNT).is(0); } - private RestTagModel prepareOrphanTag() + private RestTagModel prepareOrphanTagWithRandomName() + { + return prepareOrphanTag(createTagModelWithRandomName()); + } + + private RestTagModel prepareOrphanTag(final RestTagModel tagModel) { - final RestTagModel tagModel = createTagModelWithRandomName(); final RestTagModel tag = restClient.authenticateUser(admin).withCoreAPI().createSingleTag(tagModel); restClient.assertStatusCodeIs(CREATED); return tag; @@ -208,7 +216,7 @@ public class CreateTagsTests extends RestTest private static RestTagModel createTagModelWithRandomName() { - return createTagModelWithName(getRandomName(TAG_NAME_PREFIX).toLowerCase()); + return createTagModelWithName(getRandomName(TAG_NAME_PREFIX)); } private static RestTagModel createTagModelWithName(final String tagName) diff --git a/repository/src/main/java/org/alfresco/repo/tagging/TaggingServiceImpl.java b/repository/src/main/java/org/alfresco/repo/tagging/TaggingServiceImpl.java index f05eeb4fa9..b93b99fb42 100644 --- a/repository/src/main/java/org/alfresco/repo/tagging/TaggingServiceImpl.java +++ b/repository/src/main/java/org/alfresco/repo/tagging/TaggingServiceImpl.java @@ -1586,11 +1586,11 @@ public class TaggingServiceImpl implements TaggingService, try { return tagNames.stream() + .map(String::toLowerCase) .peek(tagName -> categoryService.getRootCategories(storeRef, ContentModel.ASPECT_TAGGABLE, tagName, false).stream() .filter(association -> Objects.nonNull(association.getChildRef())) .findAny() .ifPresent(association -> { throw new DuplicateChildNodeNameException(association.getParentRef(), association.getTypeQName(), tagName, null); })) - .map(String::toLowerCase) .map(tagName -> new Pair<>(tagName, getTagNodeRef(storeRef, tagName, true))) .collect(Collectors.toList()); }