diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 3596d580c9..bd2fc31cb5 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -24,3 +24,4 @@ c4e2bf407aa0b7a3d34605134791013ba8a2d376 062fb57831db2e3e25afc1bd63cf8b09d46ffa67 13fa17ad575aadf0ef823d63d86fbbdd4a37cd9b f00f4fe6ed5e22cdd2e3f68370c2da96e6bbc8e7 +899ed51a7b6607161fcda5c1000115a076cc4fe7 diff --git a/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/models/category/CategoryTreeFactory.java b/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/models/category/CategoryTreeFactory.java index d108a53c5f..87e82807c2 100644 --- a/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/models/category/CategoryTreeFactory.java +++ b/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/models/category/CategoryTreeFactory.java @@ -64,7 +64,7 @@ private Map getLocalizedStringEntryCategoryMap( .values() .keySet() .stream() - .map(Locale::new) + .map(Locale::forLanguageTag) .collect(Collectors.toSet()); localesForTheCategory.forEach(locale -> { final LocalizedStringEntry stringsEntry = LocalizedStringEntry.of(locale, diff --git a/commercetools/commercetools-sdk-java-api/src/test/java/com/commercetools/CategoriesTest.java b/commercetools/commercetools-sdk-java-api/src/test/java/com/commercetools/CategoriesTest.java index 94ba8a978a..bf22e62fcc 100644 --- a/commercetools/commercetools-sdk-java-api/src/test/java/com/commercetools/CategoriesTest.java +++ b/commercetools/commercetools-sdk-java-api/src/test/java/com/commercetools/CategoriesTest.java @@ -66,4 +66,63 @@ public void testCategoryTree() { var result = tree.findBySlug(Locale.ENGLISH, "women"); Assertions.assertThat(result).isNotEmpty(); } + + @Test + public void testGetLocalizedStringEntryCategoryMap() { + List allCategoriesAsFlatList = List.of( + Category.builder() + .name(LocalizedString.of(Locale.forLanguageTag("en-US"), "Women")) + .slug(LocalizedString.of(Locale.forLanguageTag("en-US"), "women")) + .id("1") + .version(1L) + .createdAt(ZonedDateTime.now()) + .lastModifiedAt(ZonedDateTime.now()) + .ancestors() + .orderHint("c2") + .build(), + Category.builder() + .name(LocalizedString.of(Locale.forLanguageTag("en"), "Men")) + .slug(LocalizedString.of(Locale.forLanguageTag("en"), "men")) + .id("2") + .version(1L) + .createdAt(ZonedDateTime.now()) + .lastModifiedAt(ZonedDateTime.now()) + .ancestors() + .orderHint("c2") + .build(), + Category.builder() + .name(LocalizedString.of(Locale.forLanguageTag("en-us"), "Kids")) + .slug(LocalizedString.of(Locale.forLanguageTag("en-us"), "kids")) + .id("3") + .version(1L) + .createdAt(ZonedDateTime.now()) + .lastModifiedAt(ZonedDateTime.now()) + .ancestors() + .orderHint("c2") + .build()); + CategoryTreeFactory factory = CategoryTreeFactory.of(); + + var tree = factory.create(allCategoriesAsFlatList); + var result = tree.findBySlug(Locale.forLanguageTag("en-US"), "women"); + Assertions.assertThat(result).isNotEmpty(); + var enUsResult = tree.findBySlug(Locale.forLanguageTag("en-us"), "women"); + Assertions.assertThat(enUsResult).isNotEmpty(); + + var enResult = tree.findBySlug(Locale.forLanguageTag("en"), "women"); + Assertions.assertThat(enResult).isEmpty(); + + var menResult = tree.findBySlug(Locale.forLanguageTag("en-US"), "men"); + Assertions.assertThat(menResult).isEmpty(); + var menEnUsResult = tree.findBySlug(Locale.forLanguageTag("en-us"), "men"); + Assertions.assertThat(menEnUsResult).isEmpty(); + var menEnResult = tree.findBySlug(Locale.forLanguageTag("en"), "men"); + Assertions.assertThat(menEnResult).isNotEmpty(); + + var kidsResult = tree.findBySlug(Locale.forLanguageTag("en-US"), "kids"); + Assertions.assertThat(kidsResult).isNotEmpty(); + var kidsEnUsResult = tree.findBySlug(Locale.forLanguageTag("en-us"), "kids"); + Assertions.assertThat(kidsEnUsResult).isNotEmpty(); + var kidsEnResult = tree.findBySlug(Locale.forLanguageTag("en"), "kids"); + Assertions.assertThat(kidsEnResult).isEmpty(); + } }