test/java/util/stream/test/org/openjdk/tests/java/util/stream/TabulatorsTest.java

Print this page
rev 7827 : 8019401: Collectors.collectingAndThen
Reviewed-by:
Contributed-by: brian.goetz@oracle.com

*** 23,32 **** --- 23,33 ---- package org.openjdk.tests.java.util.stream; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; + import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List;
*** 50,59 **** --- 51,61 ---- import java.util.stream.StreamTestDataProvider; import java.util.stream.TestData; import org.testng.annotations.Test; + import static java.util.stream.Collectors.collectingAndThen; import static java.util.stream.Collectors.groupingBy; import static java.util.stream.Collectors.groupingByConcurrent; import static java.util.stream.Collectors.partitioningBy; import static java.util.stream.Collectors.reducing; import static java.util.stream.Collectors.toCollection;
*** 601,606 **** --- 603,621 ---- exerciseMapTabulation(data, partitioningBy(classifier, reducing(0, Integer::sum)), new PartitionAssertion<>(classifier, new ReduceAssertion<>(0, LambdaTestHelpers.identity(), Integer::sum))); } + + @Test(dataProvider = "StreamTestData<Integer>", dataProviderClass = StreamTestDataProvider.class) + public void testComposeFinisher(String name, TestData.OfRef<Integer> data) throws ReflectiveOperationException { + List<Integer> asList = exerciseTerminalOps(data, s -> s.collect(toList())); + List<Integer> asImmutableList = exerciseTerminalOps(data, s -> s.collect(collectingAndThen(toList(), Collections::unmodifiableList))); + assertEquals(asList, asImmutableList); + try { + asImmutableList.add(0); + fail("Expecting immutable result"); + } + catch (UnsupportedOperationException ignored) { } + } + }