Preconditions.java

1
/*
2
 * Copyright 2014-2026 Grzegorz Piwowarek, https://4comprehension.com/
3
 *
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 * https://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16
package com.pivovarit.collectors;
17
18
import java.util.Objects;
19
import java.util.concurrent.Executor;
20
import java.util.concurrent.ThreadPoolExecutor;
21
import java.util.concurrent.TimeUnit;
22
23
final class Preconditions {
24
25
    private Preconditions() {
26
    }
27
28
    static void requireValidParallelism(int parallelism) {
29 2 1. requireValidParallelism : changed conditional boundary → KILLED
2. requireValidParallelism : negated conditional → KILLED
        if (parallelism < 1) {
30
            throw new IllegalArgumentException("Parallelism can't be lower than 1");
31
        }
32
    }
33
34
    static void requireValidTimeout(long duration, TimeUnit unit) {
35
        Objects.requireNonNull(unit, "unit can't be null");
36 2 1. requireValidTimeout : negated conditional → KILLED
2. requireValidTimeout : changed conditional boundary → KILLED
        if (duration <= 0) {
37
            throw new IllegalArgumentException("Timeout duration must be greater than 0");
38
        }
39
    }
40
41
    static void requireValidExecutor(Executor executor) {
42
        Objects.requireNonNull(executor, "Executor can't be null");
43 1 1. requireValidExecutor : negated conditional → KILLED
        if (executor instanceof ThreadPoolExecutor tpe) {
44
            switch (tpe.getRejectedExecutionHandler()) {
45
                case ThreadPoolExecutor.DiscardPolicy ignored ->
46
                  throw new IllegalArgumentException("Executor's RejectedExecutionHandler can't discard tasks");
47
                case ThreadPoolExecutor.DiscardOldestPolicy ignored ->
48
                  throw new IllegalArgumentException("Executor's RejectedExecutionHandler can't discard tasks");
49
                default -> {
50
                    // no-op
51
                }
52
            }
53
        }
54
    }
55
}

Mutations

29

1.1
Location : requireValidParallelism
Killed by : com.pivovarit.collectors.OptionTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.OptionTest]/[method:shouldThrowOnDuplicateParallelism()]
changed conditional boundary → KILLED

2.2
Location : requireValidParallelism
Killed by : com.pivovarit.collectors.OptionTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.OptionTest]/[method:shouldThrowOnInvalidParallelism()]
negated conditional → KILLED

36

1.1
Location : requireValidTimeout
Killed by : com.pivovarit.collectors.OptionTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.OptionTest]/[method:shouldThrowOnNegativeTimeout()]
negated conditional → KILLED

2.2
Location : requireValidTimeout
Killed by : com.pivovarit.collectors.OptionTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.OptionTest]/[method:shouldThrowOnZeroTimeout()]
changed conditional boundary → KILLED

43

1.1
Location : requireValidExecutor
Killed by : com.pivovarit.collectors.OptionTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.OptionTest]/[method:shouldRejectExecutorWithDiscardOldestPolicy()]
negated conditional → KILLED

Active mutators

Tests examined


Report generated by PIT 1.30.0 support