AsyncCollector.java

1
package com.pivovarit.collectors;
2
3
import java.util.Set;
4
import java.util.concurrent.CompletableFuture;
5
import java.util.concurrent.Executor;
6
import java.util.function.BiConsumer;
7
import java.util.function.BinaryOperator;
8
import java.util.function.Function;
9
import java.util.function.Supplier;
10
import java.util.stream.Collector;
11
import java.util.stream.Stream;
12
13
record AsyncCollector<T, R, RR>(Function<? super T, ? extends R> mapper, Function<Stream<R>, RR> processor, Executor executor)
14
  implements Collector<T, Stream.Builder<T>, CompletableFuture<RR>> {
15
16
    @Override
17
    public Supplier<Stream.Builder<T>> supplier() {
18 1 1. supplier : replaced return value with null for com/pivovarit/collectors/AsyncCollector::supplier → KILLED
        return Stream::builder;
19
    }
20
21
    @Override
22
    public BiConsumer<Stream.Builder<T>, T> accumulator() {
23 1 1. accumulator : replaced return value with null for com/pivovarit/collectors/AsyncCollector::accumulator → KILLED
        return Stream.Builder::add;
24
    }
25
26
    @Override
27
    public BinaryOperator<Stream.Builder<T>> combiner() {
28 1 1. combiner : replaced return value with null for com/pivovarit/collectors/AsyncCollector::combiner → SURVIVED
        return (left, right) -> {
29 1 1. lambda$combiner$0 : removed call to java/util/stream/Stream::forEach → NO_COVERAGE
            right.build().forEach(left::add);
30 1 1. lambda$combiner$0 : replaced return value with null for com/pivovarit/collectors/AsyncCollector::lambda$combiner$0 → NO_COVERAGE
            return left;
31
        };
32
    }
33
34
    @Override
35
    public Function<Stream.Builder<T>, CompletableFuture<RR>> finisher() {
36 1 1. finisher : replaced return value with null for com/pivovarit/collectors/AsyncCollector::finisher → KILLED
        return acc -> {
37
            try {
38 2 1. lambda$finisher$1 : replaced return value with null for com/pivovarit/collectors/AsyncCollector::lambda$finisher$1 → KILLED
2. lambda$finisher$0 : replaced return value with null for com/pivovarit/collectors/AsyncCollector::lambda$finisher$0 → KILLED
                return CompletableFuture.supplyAsync(() -> processor.apply(acc.build().map(mapper)), executor);
39
            } catch (Exception e) {
40 1 1. lambda$finisher$0 : replaced return value with null for com/pivovarit/collectors/AsyncCollector::lambda$finisher$0 → KILLED
                return CompletableFuture.failedFuture(e);
41
            }
42
        };
43
    }
44
45
    @Override
46
    public Set<Characteristics> characteristics() {
47
        return Set.of();
48
    }
49
}

Mutations

18

1.1
Location : supplier
Killed by : com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessEmptyWithMaxParallelism()]/[dynamic-test:#3]
replaced return value with null for com/pivovarit/collectors/AsyncCollector::supplier → KILLED

23

1.1
Location : accumulator
Killed by : com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessAllElementsWithMaxParallelism()]/[dynamic-test:#5]
replaced return value with null for com/pivovarit/collectors/AsyncCollector::accumulator → KILLED

28

1.1
Location : combiner
Killed by : none
replaced return value with null for com/pivovarit/collectors/AsyncCollector::combiner → SURVIVED
Covering tests

29

1.1
Location : lambda$combiner$0
Killed by : none
removed call to java/util/stream/Stream::forEach → NO_COVERAGE

30

1.1
Location : lambda$combiner$0
Killed by : none
replaced return value with null for com/pivovarit/collectors/AsyncCollector::lambda$combiner$0 → NO_COVERAGE

36

1.1
Location : finisher
Killed by : com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessEmptyWithMaxParallelism()]/[dynamic-test:#3]
replaced return value with null for com/pivovarit/collectors/AsyncCollector::finisher → KILLED

38

1.1
Location : lambda$finisher$1
Killed by : com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessEmptyWithMaxParallelism()]/[dynamic-test:#3]
replaced return value with null for com/pivovarit/collectors/AsyncCollector::lambda$finisher$1 → KILLED

2.2
Location : lambda$finisher$0
Killed by : com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessEmptyWithMaxParallelism()]/[dynamic-test:#3]
replaced return value with null for com/pivovarit/collectors/AsyncCollector::lambda$finisher$0 → KILLED

40

1.1
Location : lambda$finisher$0
Killed by : com.pivovarit.collectors.test.RejectedExecutionHandlingTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.RejectedExecutionHandlingTest]/[test-factory:shouldRejectInvalidRejectedExecutionHandlerWhenParallelismOneFactory()]/[dynamic-test:#2]
replaced return value with null for com/pivovarit/collectors/AsyncCollector::lambda$finisher$0 → KILLED

Active mutators

Tests examined


Report generated by PIT 1.21.0