ValidationFluents.java

1
package com.github.valid8j.fluent.internals;
2
3
import com.github.valid8j.classic.Assertions;
4
import com.github.valid8j.classic.Ensures;
5
import com.github.valid8j.classic.Requires;
6
import com.github.valid8j.pcond.core.fluent.builtins.ObjectTransformer;
7
import com.github.valid8j.pcond.fluent.Statement;
8
9
import java.util.Arrays;
10
import java.util.List;
11
import java.util.function.Predicate;
12
13
import static java.util.stream.Collectors.toList;
14
15
/**
16
 * A facade class to provide fluent versions of `valid8j` entry points.
17
 * You can pass `Statement` objects created by static methods in `Statement` interface such as
18
 * `objectValue`, `stringValue`, `intValue`, etc.
19
 *
20
 * @see Statement
21
 */
22
public enum ValidationFluents {
23
  ;
24
25
  /**
26
   * Fluent version of {@link Requires#requireArgument(Object, Predicate)}.
27
   *
28
   * @param statement A statement to be verified
29
   */
30
  public static <T> T requireArgument(Statement<T> statement) {
31 1 1. requireArgument : replaced return value with null for com/github/valid8j/fluent/internals/ValidationFluents::requireArgument → KILLED
    return Requires.requireArgument(statement.statementValue(), statement.statementPredicate());
32
  }
33
34
  /**
35
   * Fluent version of {@link Requires#requireArgument(Object, Predicate)}.
36
   * Use this method when you need to verify multiple values.
37
   *
38
   * @param statements Statements to be verified
39
   */
40
  public static void requireArguments(Statement<?>... statements) {
41
    List<?> values = Arrays.stream(statements).map(Statement::statementValue).collect(toList());
42
    Requires.requireArgument(values, Statement.createPredicateForAllOf(statements));
43
  }
44
45
  public static <T> T requireStatement(Statement<T> statement) {
46 1 1. requireStatement : replaced return value with null for com/github/valid8j/fluent/internals/ValidationFluents::requireStatement → KILLED
    return Requires.require(statement.statementValue(), statement.statementPredicate());
47
  }
48
49
  /**
50
   * Fluent version of {@link Requires#require(Object, Predicate)}.
51
   * Use this method when you need to verify multiple values.
52
   *
53
   * @param statements Statements to be verified
54
   */
55
  public static void requireAll(Statement<?>... statements) {
56
    List<?> values = Arrays.stream(statements).map(Statement::statementValue).collect(toList());
57
    Requires.require(values, Statement.createPredicateForAllOf(statements));
58
  }
59
60
  public static <T> T requireState(Statement<T> statement) {
61 1 1. requireState : replaced return value with null for com/github/valid8j/fluent/internals/ValidationFluents::requireState → KILLED
    return Requires.requireState(statement.statementValue(), statement.statementPredicate());
62
  }
63
64
  /**
65
   * Fluent version of {@link Requires#requireState(Object, Predicate)}.
66
   * Use this method when you need to verify multiple values.
67
   *
68
   * @param statements Statements to be verified
69
   */
70
  public static void requireStates(Statement<?>... statements) {
71
    List<?> values = Arrays.stream(statements).map(Statement::statementValue).collect(toList());
72
    Requires.requireState(values, Statement.createPredicateForAllOf(statements));
73
  }
74
75
  public static <T> T ensureStatement(Statement<T> statement) {
76 1 1. ensureStatement : replaced return value with null for com/github/valid8j/fluent/internals/ValidationFluents::ensureStatement → KILLED
    return Ensures.ensure(statement.statementValue(), statement.statementPredicate());
77
  }
78
79
  /**
80
   * Fluent version of {@link Ensures#ensure(Object, Predicate)}.
81
   * Use this method when you need to verify multiple values.
82
   *
83
   * @param statements Statements to be verified
84
   */
85
  public static void ensureAll(Statement<?>... statements) {
86
    List<?> values = Arrays.stream(statements).map(Statement::statementValue).collect(toList());
87
    Ensures.ensure(values, Statement.createPredicateForAllOf(statements));
88
  }
89
90
  /**
91
   * Fluent version of {@link Ensures#ensureState(Object, Predicate)}.
92
   * Use this method when you need to verify multiple values.
93
   *
94
   * @param statement A statement to be verified
95
   */
96
  public static <T> T ensureState(Statement<T> statement) {
97 1 1. ensureState : replaced return value with null for com/github/valid8j/fluent/internals/ValidationFluents::ensureState → KILLED
    return Ensures.ensureState(statement.statementValue(), statement.statementPredicate());
98
  }
99
100
  /**
101
   * Fluent version of {@link Ensures#ensureState(Object, Predicate)}.
102
   * Use this method when you need to verify multiple values.
103
   *
104
   * @param statements Statements to be verified
105
   */
106
  public static void ensureStates(Statement<?>... statements) {
107
    List<?> values = Arrays.stream(statements).map(Statement::statementValue).collect(toList());
108
    Ensures.ensureState(values, Statement.createPredicateForAllOf(statements));
109
  }
110
111
  /**
112
   * Fluent version of {@link Assertions#that(Object, Predicate)}.
113
   * Use this method when you need to verify multiple values.
114
   *
115
   * @param statement A statement to be verified
116
   */
117
  public static <T> boolean that(Statement<T> statement) {
118 2 1. that : replaced boolean return with true for com/github/valid8j/fluent/internals/ValidationFluents::that → SURVIVED
2. that : replaced boolean return with false for com/github/valid8j/fluent/internals/ValidationFluents::that → KILLED
    return Assertions.that(statement.statementValue(), statement.statementPredicate());
119
  }
120
121
  /**
122
   * Fluent version of {@link Assertions#that(Object, Predicate)}.
123
   * Use this method when you need to verify multiple values.
124
   *
125
   * @param statements Statements to be verified
126
   */
127
  public static boolean all(Statement<?>... statements) {
128
    List<?> values = Arrays.stream(statements).map(Statement::statementValue).collect(toList());
129 2 1. all : replaced boolean return with true for com/github/valid8j/fluent/internals/ValidationFluents::all → SURVIVED
2. all : replaced boolean return with false for com/github/valid8j/fluent/internals/ValidationFluents::all → KILLED
    return Assertions.that(values, Statement.createPredicateForAllOf(statements));
130
  }
131
132
  /**
133
   * Fluent version of {@link Assertions#precondition(Object, Predicate)}.
134
   * Use this method when you need to verify multiple values.
135
   *
136
   * @param statement A statement to be verified
137
   */
138
  public static <T> boolean precondition(Statement<T> statement) {
139 2 1. precondition : replaced boolean return with true for com/github/valid8j/fluent/internals/ValidationFluents::precondition → SURVIVED
2. precondition : replaced boolean return with false for com/github/valid8j/fluent/internals/ValidationFluents::precondition → KILLED
    return Assertions.precondition(statement.statementValue(), statement.statementPredicate());
140
  }
141
142
  /**
143
   * Fluent version of {@link Assertions#precondition(Object, Predicate)}.
144
   * Use this method when you need to verify multiple values.
145
   *
146
   * @param statements Statements to be verified
147
   */
148
  public static boolean preconditions(Statement<?>... statements) {
149
    List<?> values = Arrays.stream(statements).map(Statement::statementValue).collect(toList());
150 2 1. preconditions : replaced boolean return with true for com/github/valid8j/fluent/internals/ValidationFluents::preconditions → SURVIVED
2. preconditions : replaced boolean return with false for com/github/valid8j/fluent/internals/ValidationFluents::preconditions → KILLED
    return Assertions.precondition(values, Statement.createPredicateForAllOf(statements));
151
  }
152
153
  /**
154
   * Fluent version of {@link Assertions#postcondition(Object, Predicate)}.
155
   *
156
   * @param statement A statement to be verified
157
   */
158
  public static <T> boolean postcondition(Statement<T> statement) {
159 2 1. postcondition : replaced boolean return with true for com/github/valid8j/fluent/internals/ValidationFluents::postcondition → SURVIVED
2. postcondition : replaced boolean return with false for com/github/valid8j/fluent/internals/ValidationFluents::postcondition → KILLED
    return Assertions.postcondition(statement.statementValue(), statement.statementPredicate());
160
  }
161
162
  /**
163
   * Fluent version of {@link Assertions#postcondition(Object, Predicate)}.
164
   * Use this method when you need to verify multiple values.
165
   *
166
   * @param statements Statements to be verified
167
   */
168
  public static boolean postconditions(Statement<?>... statements) {
169
    List<?> values = Arrays.stream(statements).map(Statement::statementValue).collect(toList());
170 2 1. postconditions : replaced boolean return with true for com/github/valid8j/fluent/internals/ValidationFluents::postconditions → SURVIVED
2. postconditions : replaced boolean return with false for com/github/valid8j/fluent/internals/ValidationFluents::postconditions → KILLED
    return Assertions.postcondition(values, Statement.createPredicateForAllOf(statements));
171
  }
172
173
  public static <E> ObjectTransformer<E, E> value(E object) {
174 1 1. value : replaced return value with null for com/github/valid8j/fluent/internals/ValidationFluents::value → KILLED
    return Statement.objectValue(object);
175
  }
176
}

Mutations

31

1.1
Location : requireArgument
Killed by : com.github.valid8j.entrypoints.ValidationFluentsTest$Singular.test6(com.github.valid8j.entrypoints.ValidationFluentsTest$Singular)
replaced return value with null for com/github/valid8j/fluent/internals/ValidationFluents::requireArgument → KILLED

46

1.1
Location : requireStatement
Killed by : com.github.valid8j.entrypoints.ValidationFluentsTest$Singular.test7(com.github.valid8j.entrypoints.ValidationFluentsTest$Singular)
replaced return value with null for com/github/valid8j/fluent/internals/ValidationFluents::requireStatement → KILLED

61

1.1
Location : requireState
Killed by : com.github.valid8j.entrypoints.ValidationFluentsTest$Singular.test4(com.github.valid8j.entrypoints.ValidationFluentsTest$Singular)
replaced return value with null for com/github/valid8j/fluent/internals/ValidationFluents::requireState → KILLED

76

1.1
Location : ensureStatement
Killed by : com.github.valid8j.entrypoints.ValidationFluentsTest$Singular.test8(com.github.valid8j.entrypoints.ValidationFluentsTest$Singular)
replaced return value with null for com/github/valid8j/fluent/internals/ValidationFluents::ensureStatement → KILLED

97

1.1
Location : ensureState
Killed by : com.github.valid8j.entrypoints.ValidationFluentsTest$Singular.test5(com.github.valid8j.entrypoints.ValidationFluentsTest$Singular)
replaced return value with null for com/github/valid8j/fluent/internals/ValidationFluents::ensureState → KILLED

118

1.1
Location : that
Killed by : com.github.valid8j.ut.styles.FluentStyleDbCTest$ForEnsuresTest.test_that(com.github.valid8j.ut.styles.FluentStyleDbCTest$ForEnsuresTest)
replaced boolean return with false for com/github/valid8j/fluent/internals/ValidationFluents::that → KILLED

2.2
Location : that
Killed by : none
replaced boolean return with true for com/github/valid8j/fluent/internals/ValidationFluents::that → SURVIVED

129

1.1
Location : all
Killed by : com.github.valid8j.ut.styles.FluentStyleDbCTest$ForEnsuresTest.test_all(com.github.valid8j.ut.styles.FluentStyleDbCTest$ForEnsuresTest)
replaced boolean return with false for com/github/valid8j/fluent/internals/ValidationFluents::all → KILLED

2.2
Location : all
Killed by : none
replaced boolean return with true for com/github/valid8j/fluent/internals/ValidationFluents::all → SURVIVED

139

1.1
Location : precondition
Killed by : com.github.valid8j.ut.styles.FluentStyleDbCTest$ForEnsuresTest.test_precondition(com.github.valid8j.ut.styles.FluentStyleDbCTest$ForEnsuresTest)
replaced boolean return with false for com/github/valid8j/fluent/internals/ValidationFluents::precondition → KILLED

2.2
Location : precondition
Killed by : none
replaced boolean return with true for com/github/valid8j/fluent/internals/ValidationFluents::precondition → SURVIVED

150

1.1
Location : preconditions
Killed by : com.github.valid8j.ut.styles.FluentStyleDbCTest$ForEnsuresTest.test_preconditions(com.github.valid8j.ut.styles.FluentStyleDbCTest$ForEnsuresTest)
replaced boolean return with false for com/github/valid8j/fluent/internals/ValidationFluents::preconditions → KILLED

2.2
Location : preconditions
Killed by : none
replaced boolean return with true for com/github/valid8j/fluent/internals/ValidationFluents::preconditions → SURVIVED

159

1.1
Location : postcondition
Killed by : com.github.valid8j.ut.styles.FluentStyleDbCTest$ForEnsuresTest.test_postcondition(com.github.valid8j.ut.styles.FluentStyleDbCTest$ForEnsuresTest)
replaced boolean return with false for com/github/valid8j/fluent/internals/ValidationFluents::postcondition → KILLED

2.2
Location : postcondition
Killed by : none
replaced boolean return with true for com/github/valid8j/fluent/internals/ValidationFluents::postcondition → SURVIVED

170

1.1
Location : postconditions
Killed by : com.github.valid8j.ut.styles.FluentStyleDbCTest$ForEnsuresTest.test_postconditions(com.github.valid8j.ut.styles.FluentStyleDbCTest$ForEnsuresTest)
replaced boolean return with false for com/github/valid8j/fluent/internals/ValidationFluents::postconditions → KILLED

2.2
Location : postconditions
Killed by : none
replaced boolean return with true for com/github/valid8j/fluent/internals/ValidationFluents::postconditions → SURVIVED

174

1.1
Location : value
Killed by : com.github.valid8j.entrypoints.ValidationFluentsTest$Singular.test1(com.github.valid8j.entrypoints.ValidationFluentsTest$Singular)
replaced return value with null for com/github/valid8j/fluent/internals/ValidationFluents::value → KILLED

Active mutators

Tests examined


Report generated by PIT 1.7.3