toSet, toMap: adding examples with duplicates (#6264)

* BAEL-2548 fix typo

* BAEL-2548 toSet, toMap: added tests with duplicate elements
This commit is contained in:
cror 2019-02-07 01:57:56 +01:00 committed by KevinGilmore
parent e49d46d240
commit 2aa4e807c0

View File

@ -39,6 +39,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
public class Java8CollectorsUnitTest { public class Java8CollectorsUnitTest {
private final List<String> givenList = Arrays.asList("a", "bb", "ccc", "dd"); private final List<String> givenList = Arrays.asList("a", "bb", "ccc", "dd");
private final List<String> listWithDuplicates = Arrays.asList("a", "bb", "c", "d", "bb");
@Test @Test
public void whenCollectingToList_shouldCollectToList() throws Exception { public void whenCollectingToList_shouldCollectToList() throws Exception {
@ -48,12 +49,19 @@ public class Java8CollectorsUnitTest {
} }
@Test @Test
public void whenCollectingToList_shouldCollectToSet() throws Exception { public void whenCollectingToSet_shouldCollectToSet() throws Exception {
final Set<String> result = givenList.stream().collect(toSet()); final Set<String> result = givenList.stream().collect(toSet());
assertThat(result).containsAll(givenList); assertThat(result).containsAll(givenList);
} }
@Test
public void givenContainsDuplicateElements_whenCollectingToSet_shouldAddDuplicateElementsOnlyOnce() throws Exception {
final Set<String> result = listWithDuplicates.stream().collect(toSet());
assertThat(result).hasSize(4);
}
@Test @Test
public void whenCollectingToCollection_shouldCollectToCollection() throws Exception { public void whenCollectingToCollection_shouldCollectToCollection() throws Exception {
final List<String> result = givenList.stream().collect(toCollection(LinkedList::new)); final List<String> result = givenList.stream().collect(toCollection(LinkedList::new));
@ -83,6 +91,13 @@ public class Java8CollectorsUnitTest {
assertThat(result).containsEntry("a", 1).containsEntry("bb", 2).containsEntry("ccc", 3).containsEntry("dd", 2); assertThat(result).containsEntry("a", 1).containsEntry("bb", 2).containsEntry("ccc", 3).containsEntry("dd", 2);
} }
@Test
public void givenContainsDuplicateElements_whenCollectingToMap_shouldThrowException() throws Exception {
assertThatThrownBy(() -> {
listWithDuplicates.stream().collect(toMap(Function.identity(), String::length));
}).isInstanceOf(IllegalStateException.class);
}
@Test @Test
public void whenCollectingAndThen_shouldCollect() throws Exception { public void whenCollectingAndThen_shouldCollect() throws Exception {
final List<String> result = givenList.stream().collect(collectingAndThen(toList(), ImmutableList::copyOf)); final List<String> result = givenList.stream().collect(collectingAndThen(toList(), ImmutableList::copyOf));