Compare commits
3 commits
cbf863be15
...
5b2090a231
Author | SHA1 | Date | |
---|---|---|---|
5b2090a231 | |||
9795548cf9 | |||
c0231964d3 |
6 changed files with 224 additions and 127 deletions
9
.github/workflows/bld.yml
vendored
9
.github/workflows/bld.yml
vendored
|
@ -1,14 +1,13 @@
|
|||
name: bld-ci
|
||||
|
||||
on: [ push, pull_request, workflow_dispatch ]
|
||||
on: [push, pull_request, workflow_dispatch]
|
||||
|
||||
jobs:
|
||||
build-bld-project:
|
||||
strategy:
|
||||
matrix:
|
||||
java-version: [ 17, 21, 24 ]
|
||||
kotlin-version: [ 1.9.25, 2.0.21, 2.1.20 ]
|
||||
os: [ ubuntu-latest, windows-latest, macos-latest ]
|
||||
java-version: [17, 21, 24]
|
||||
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
|
@ -36,4 +35,4 @@ jobs:
|
|||
run: ./bld download
|
||||
|
||||
- name: Run tests
|
||||
run: ./bld compile test
|
||||
run: ./bld compile test
|
||||
|
|
1
.idea/inspectionProfiles/Project_Default.xml
generated
1
.idea/inspectionProfiles/Project_Default.xml
generated
|
@ -4,5 +4,6 @@
|
|||
<inspection_tool class="JavadocDeclaration" enabled="true" level="WARNING" enabled_by_default="true">
|
||||
<option name="ADDITIONAL_TAGS" value="created" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="UsePropertyAccessSyntax" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
||||
</profile>
|
||||
</component>
|
|
@ -48,7 +48,7 @@ Don't forget to add the Pitest `test` dependencies to your build file, as they a
|
|||
```java
|
||||
repositories = List.of(MAVEN_CENTRAL);
|
||||
scope(test)
|
||||
.include(dependency("org.pitest", "pitest", version(1, 19, 2)))
|
||||
.include(dependency("org.pitest", "pitest", version(1, 19, 3)))
|
||||
.include(dependency("org.pitest", "pitest-command-line", version(1, 19, 2)))
|
||||
.include(dependency("org.pitest", "pitest-junit5-plugin", version(1, 2, 2)))
|
||||
.include(dependency("org.pitest", "pitest-testng-plugin", version(1, 0, 0)));
|
||||
|
|
|
@ -29,7 +29,7 @@ public class ExamplesBuild extends Project {
|
|||
|
||||
repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES);
|
||||
|
||||
var pitest = version(1, 19, 2);
|
||||
var pitest = version(1, 19, 3);
|
||||
scope(test)
|
||||
.include(dependency("org.pitest", "pitest", pitest))
|
||||
.include(dependency("org.pitest", "pitest-command-line", pitest))
|
||||
|
|
|
@ -22,6 +22,9 @@ import rife.bld.publish.PublishDeveloper;
|
|||
import rife.bld.publish.PublishLicense;
|
||||
import rife.bld.publish.PublishScm;
|
||||
|
||||
import java.io.File;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.List;
|
||||
|
||||
import static rife.bld.dependencies.Repository.*;
|
||||
|
@ -47,7 +50,7 @@ public class PitestOperationBuild extends Project {
|
|||
|
||||
repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL, RIFE2_RELEASES, RIFE2_SNAPSHOTS);
|
||||
|
||||
var pitest = version(1, 19, 2);
|
||||
var pitest = version(1, 19, 3);
|
||||
scope(compile)
|
||||
.include(dependency("com.uwyn.rife2", "bld", version(2, 2, 1)));
|
||||
scope(test)
|
||||
|
@ -115,6 +118,22 @@ public class PitestOperationBuild extends Project {
|
|||
.command("scripts/cliargs.sh")
|
||||
.execute();
|
||||
}
|
||||
super.test();
|
||||
|
||||
var testResultsDir = "build/test-results/test/";
|
||||
var op = testOperation().fromProject(this);
|
||||
op.testToolOptions().reportsDir(new File(testResultsDir));
|
||||
op.execute();
|
||||
|
||||
var xunitViewer = new File("/usr/bin/xunit-viewer");
|
||||
if (xunitViewer.exists() && xunitViewer.canExecute()) {
|
||||
var reportsDir = "build/reports/tests/test/";
|
||||
|
||||
Files.createDirectories(Path.of(reportsDir));
|
||||
|
||||
new ExecOperation()
|
||||
.fromProject(this)
|
||||
.command(xunitViewer.getPath(), "-r", testResultsDir, "-o", reportsDir + "index.html")
|
||||
.execute();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,7 +51,6 @@ class PitestOperationTest {
|
|||
@Nested
|
||||
@DisplayName("Execute Tests")
|
||||
class ExecuteTests {
|
||||
|
||||
@Test
|
||||
void execute() throws IOException {
|
||||
var tmpDir = Files.createTempDirectory("bld-pitest-");
|
||||
|
@ -110,16 +109,19 @@ class PitestOperationTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
void exportLineCoverage() {
|
||||
void exportLineCoverageIsFalse() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.exportLineCoverage(false);
|
||||
assertThat(op.options().get("--exportLineCoverage")).isEqualTo(FALSE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void exportLineCoverageIsTrue() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new BaseProject())
|
||||
.exportLineCoverage(true);
|
||||
assertThat(op.options().get("--exportLineCoverage")).isEqualTo(TRUE);
|
||||
|
||||
op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.exportLineCoverage(false);
|
||||
assertThat(op.options().get("--exportLineCoverage")).isEqualTo(FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -140,8 +142,11 @@ class PitestOperationTest {
|
|||
.fromProject(new BaseProject())
|
||||
.avoidCallsTo(FOO, BAR);
|
||||
assertThat(op.options().get("--avoidCallsTo")).isEqualTo(FOOBAR);
|
||||
}
|
||||
|
||||
op = new PitestOperation()
|
||||
@Test
|
||||
void avoidCallsToAsList() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.avoidCallsTo(List.of(FOO, BAR));
|
||||
assertThat(op.options().get("--avoidCallsTo")).isEqualTo(FOOBAR);
|
||||
|
@ -228,24 +233,38 @@ class PitestOperationTest {
|
|||
.fromProject(new BaseProject())
|
||||
.coverageThreshold(3);
|
||||
assertThat(op.options().get("--coverageThreshold")).isEqualTo("3");
|
||||
}
|
||||
|
||||
op = new PitestOperation()
|
||||
@Test
|
||||
void coverageThresholdOutOfBounds() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new BaseProject())
|
||||
.coverageThreshold(101);
|
||||
assertThat(op.options().get("--coverageThreshold")).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
void detectInlinedCode() {
|
||||
void coverageThresholdOutOfBoundsNegative() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new BaseProject())
|
||||
.coverageThreshold(-1);
|
||||
assertThat(op.options().get("--coverageThreshold")).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
void detectInlinedCodeIsFalse() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.detectInlinedCode(false);
|
||||
assertThat(op.options().get("--detectInlinedCode")).isEqualTo(FALSE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void detectInlinedCodeIsTrue() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new BaseProject())
|
||||
.detectInlinedCode(true);
|
||||
assertThat(op.options().get("--detectInlinedCode")).isEqualTo(TRUE);
|
||||
|
||||
op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.detectInlinedCode(false);
|
||||
assertThat(op.options().get("--detectInlinedCode")).isEqualTo(FALSE);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -254,8 +273,11 @@ class PitestOperationTest {
|
|||
.fromProject(new BaseProject())
|
||||
.features(FOO, BAR);
|
||||
assertThat(op.options().get("--features")).isEqualTo(FOOBAR);
|
||||
}
|
||||
|
||||
op = new PitestOperation()
|
||||
@Test
|
||||
void featuresAsList() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.features(List.of(FOO, BAR));
|
||||
assertThat(op.options().get("--features")).isEqualTo(FOOBAR);
|
||||
|
@ -289,28 +311,35 @@ class PitestOperationTest {
|
|||
@Test
|
||||
void projectBase() {
|
||||
var op = new PitestOperation().projectBase(FOO);
|
||||
var key = "--projectBase";
|
||||
|
||||
assertThat(op.options().get(key)).isEqualTo(FOO);
|
||||
|
||||
op = new PitestOperation().projectBase(FOO_FILE);
|
||||
assertThat(op.options().get(key)).isEqualTo(FOO_FILE.getAbsolutePath());
|
||||
|
||||
op = new PitestOperation().projectBase(FOO_FILE.toPath());
|
||||
assertThat(op.options().get(key)).isEqualTo(FOO_FILE.getAbsolutePath());
|
||||
assertThat(op.options().get("--projectBase")).isEqualTo(FOO);
|
||||
}
|
||||
|
||||
@Test
|
||||
void skipFailingTests() {
|
||||
void projectBaseAsFile() {
|
||||
var op = new PitestOperation().projectBase(FOO_FILE);
|
||||
assertThat(op.options().get("--projectBase")).isEqualTo(FOO_FILE.getAbsolutePath());
|
||||
}
|
||||
|
||||
@Test
|
||||
void projectBaseAsPath() {
|
||||
var op = new PitestOperation().projectBase(FOO_FILE.toPath());
|
||||
assertThat(op.options().get("--projectBase")).isEqualTo(FOO_FILE.getAbsolutePath());
|
||||
}
|
||||
|
||||
@Test
|
||||
void skipFailingTestsIsFalse() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.skipFailingTests(false);
|
||||
assertThat(op.options().get("--skipFailingTests")).isEqualTo(FALSE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void skipFailingTestsIsTrue() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new BaseProject())
|
||||
.skipFailingTests(true);
|
||||
assertThat(op.options().get("--skipFailingTests")).isEqualTo(TRUE);
|
||||
|
||||
op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.skipFailingTests(false);
|
||||
assertThat(op.options().get("--skipFailingTests")).isEqualTo(FALSE);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -330,16 +359,19 @@ class PitestOperationTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
void timestampedReports() {
|
||||
void timestampedReportsIsFalse() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.timestampedReports(false);
|
||||
assertThat(op.options().get("--timestampedReports")).isEqualTo(FALSE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void timestampedReportsIsTrue() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new BaseProject())
|
||||
.timestampedReports(true);
|
||||
assertThat(op.options().get("--timestampedReports")).isEqualTo(TRUE);
|
||||
|
||||
op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.timestampedReports(false);
|
||||
assertThat(op.options().get("--timestampedReports")).isEqualTo(FALSE);
|
||||
}
|
||||
|
||||
@Nested
|
||||
|
@ -347,6 +379,12 @@ class PitestOperationTest {
|
|||
class ClassPathTests {
|
||||
private static final String CLASS_PATH = "--classPath";
|
||||
|
||||
@Test
|
||||
void classPath() {
|
||||
var op = new PitestOperation().classPath(FOO_FILE.toPath(), BAR_FILE.toPath());
|
||||
assertThat(op.options().get(CLASS_PATH)).isEqualTo(FOOBAR_FORMAT);
|
||||
}
|
||||
|
||||
@Test
|
||||
void classPathAsFile() {
|
||||
var op = new PitestOperation()
|
||||
|
@ -375,12 +413,6 @@ class PitestOperationTest {
|
|||
assertThat(op.options().get(CLASS_PATH)).isEqualTo(FOOBAR);
|
||||
}
|
||||
|
||||
@Test
|
||||
void classPathAsStringArray() {
|
||||
var op = new PitestOperation().classPath(FOO_FILE.toPath(), BAR_FILE.toPath());
|
||||
assertThat(op.options().get(CLASS_PATH)).isEqualTo(FOOBAR_FORMAT);
|
||||
}
|
||||
|
||||
@Test
|
||||
void classPathAsStringList() {
|
||||
var op = new PitestOperation().classPathPaths(List.of(FOO_FILE.toPath(), BAR_FILE.toPath()));
|
||||
|
@ -388,16 +420,19 @@ class PitestOperationTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
void useClasspathJar() {
|
||||
void useClasspathJarIsFalse() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.useClasspathJar(false);
|
||||
assertThat(op.options().get("--useClasspathJar")).isEqualTo(FALSE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void useClasspathJarIsTrue() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new BaseProject())
|
||||
.useClasspathJar(true);
|
||||
assertThat(op.options().get("--useClasspathJar")).isEqualTo(TRUE);
|
||||
|
||||
op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.useClasspathJar(false);
|
||||
assertThat(op.options().get("--useClasspathJar")).isEqualTo(FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -410,13 +445,24 @@ class PitestOperationTest {
|
|||
.fromProject(new BaseProject())
|
||||
.excludedClasses(FOO, BAR);
|
||||
assertThat(op.options().get("--excludedClasses")).isEqualTo(FOOBAR);
|
||||
}
|
||||
|
||||
op = new PitestOperation()
|
||||
@Test
|
||||
void excludedClassesAsList() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.excludedClasses(Set.of(FOO, BAR));
|
||||
assertThat(op.options().get("--excludedClasses")).contains(",");
|
||||
}
|
||||
|
||||
@Test
|
||||
void excludedGroups() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new BaseProject())
|
||||
.excludedGroups(FOO, BAR);
|
||||
assertThat(op.options().get("--excludedGroups")).isEqualTo(FOOBAR);
|
||||
}
|
||||
|
||||
@Test
|
||||
void excludedGroupsAsList() {
|
||||
var op = new PitestOperation()
|
||||
|
@ -425,14 +471,6 @@ class PitestOperationTest {
|
|||
assertThat(op.options().get("--excludedGroups")).isEqualTo(FOOBAR);
|
||||
}
|
||||
|
||||
@Test
|
||||
void excludedGroupsAsStringArray() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new BaseProject())
|
||||
.excludedGroups(FOO, BAR);
|
||||
assertThat(op.options().get("--excludedGroups")).isEqualTo(FOOBAR);
|
||||
}
|
||||
|
||||
@Test
|
||||
void excludedMethods() {
|
||||
var op = new PitestOperation()
|
||||
|
@ -455,18 +493,18 @@ class PitestOperationTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
void excludedTestsAsList() {
|
||||
void excludedTests() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.excludedTestClasses(List.of(FOO, BAR));
|
||||
.fromProject(new BaseProject())
|
||||
.excludedTestClasses(FOO, BAR);
|
||||
assertThat(op.options().get("--excludedTestClasses")).isEqualTo(FOOBAR);
|
||||
}
|
||||
|
||||
@Test
|
||||
void excludedTestsAsStringArray() {
|
||||
void excludedTestsAsList() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new BaseProject())
|
||||
.excludedTestClasses(FOO, BAR);
|
||||
.fromProject(new Project())
|
||||
.excludedTestClasses(List.of(FOO, BAR));
|
||||
assertThat(op.options().get("--excludedTestClasses")).isEqualTo(FOOBAR);
|
||||
}
|
||||
}
|
||||
|
@ -517,16 +555,19 @@ class PitestOperationTest {
|
|||
@DisplayName("Include Test")
|
||||
class IncludeTest {
|
||||
@Test
|
||||
void includeLaunchClasspath() {
|
||||
void includeLaunchClasspathIsFalse() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.includeLaunchClasspath(false);
|
||||
assertThat(op.options().get("--includeLaunchClasspath")).isEqualTo(FALSE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void includeLaunchClasspathIsTrue() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new BaseProject())
|
||||
.includeLaunchClasspath(true);
|
||||
assertThat(op.options().get("--includeLaunchClasspath")).isEqualTo(TRUE);
|
||||
|
||||
op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.includeLaunchClasspath(false);
|
||||
assertThat(op.options().get("--includeLaunchClasspath")).isEqualTo(FALSE);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -535,8 +576,11 @@ class PitestOperationTest {
|
|||
.fromProject(new BaseProject())
|
||||
.includedGroups(FOO, BAR);
|
||||
assertThat(op.options().get("--includedGroups")).isEqualTo(FOOBAR);
|
||||
}
|
||||
|
||||
op = new PitestOperation()
|
||||
@Test
|
||||
void includedGroupsAsList() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.includedGroups(List.of(FOO, BAR));
|
||||
assertThat(op.options().get("--includedGroups")).isEqualTo(FOOBAR);
|
||||
|
@ -560,8 +604,11 @@ class PitestOperationTest {
|
|||
.fromProject(new BaseProject())
|
||||
.jvmArgs(FOO, BAR);
|
||||
assertThat(op.options().get("--jvmArgs")).isEqualTo(FOOBAR);
|
||||
}
|
||||
|
||||
op = new PitestOperation()
|
||||
@Test
|
||||
void jvmArgsAsList() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.jvmArgs(List.of(FOO, BAR));
|
||||
assertThat(op.options().get("--jvmArgs")).isEqualTo(FOOBAR);
|
||||
|
@ -571,11 +618,17 @@ class PitestOperationTest {
|
|||
void jvmPath() {
|
||||
var op = new PitestOperation().jvmPath(FOO);
|
||||
assertThat(op.options().get("--jvmPath")).isEqualTo(FOO);
|
||||
}
|
||||
|
||||
op = new PitestOperation().jvmPath(FOO_FILE);
|
||||
@Test
|
||||
void jvmPathAsFile() {
|
||||
var op = new PitestOperation().jvmPath(FOO_FILE);
|
||||
assertThat(op.options().get("--jvmPath")).isEqualTo(FOO_FILE.getAbsolutePath());
|
||||
}
|
||||
|
||||
op = new PitestOperation().jvmPath(FOO_FILE.toPath());
|
||||
@Test
|
||||
void jvmPathAsPath() {
|
||||
var op = new PitestOperation().jvmPath(FOO_FILE.toPath());
|
||||
assertThat(op.options().get("--jvmPath")).isEqualTo(FOO_FILE.getAbsolutePath());
|
||||
}
|
||||
}
|
||||
|
@ -583,28 +636,30 @@ class PitestOperationTest {
|
|||
@Nested
|
||||
@DisplayName("Mutable Code Paths Tests")
|
||||
class MutableCodePathsTests {
|
||||
|
||||
private static final String MUTABLE_CODE_PATHS = "--mutableCodePaths";
|
||||
|
||||
@Test
|
||||
void mutableCodePaths() {
|
||||
var op = new PitestOperation().mutableCodePaths(FOO, BAR);
|
||||
assertThat(op.options().get(MUTABLE_CODE_PATHS)).isEqualTo(FOOBAR);
|
||||
}
|
||||
|
||||
@Test
|
||||
void mutableCodePathsAsFileArray() {
|
||||
var op = new PitestOperation().mutableCodePaths(FOO_FILE, BAR_FILE);
|
||||
assertThat(op.options().get(MUTABLE_CODE_PATHS)).isEqualTo(FOOBAR_FORMAT);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
void mutableCodePathsAsFileList() {
|
||||
var op = new PitestOperation().mutableCodePathsFiles(List.of(FOO_FILE, BAR_FILE));
|
||||
assertThat(op.options().get(MUTABLE_CODE_PATHS)).isEqualTo(FOOBAR_FORMAT);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
void mutableCodePathsAsPathArray() {
|
||||
var op = new PitestOperation().mutableCodePaths(FOO_FILE.toPath(), BAR_FILE.toPath());
|
||||
assertThat(op.options().get(MUTABLE_CODE_PATHS)).isEqualTo(FOOBAR_FORMAT);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -613,17 +668,10 @@ class PitestOperationTest {
|
|||
assertThat(op.options().get(MUTABLE_CODE_PATHS)).isEqualTo(FOOBAR_FORMAT);
|
||||
}
|
||||
|
||||
@Test
|
||||
void mutableCodePathsAsStringArray() {
|
||||
var op = new PitestOperation().mutableCodePaths(FOO, BAR);
|
||||
assertThat(op.options().get(MUTABLE_CODE_PATHS)).isEqualTo(FOOBAR);
|
||||
}
|
||||
|
||||
@Test
|
||||
void mutableCodePathsAsStringList() {
|
||||
var op = new PitestOperation().mutableCodePaths(List.of(FOO, BAR));
|
||||
assertThat(op.options().get(MUTABLE_CODE_PATHS)).isEqualTo(FOOBAR);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -631,20 +679,31 @@ class PitestOperationTest {
|
|||
@DisplayName("Mutation Tests")
|
||||
class MutationTests {
|
||||
@Test
|
||||
void failWhenNoMutations() {
|
||||
void failWhenNoMutationsIsFalse() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new BaseProject())
|
||||
.failWhenNoMutations(true);
|
||||
assertThat(op.options().get("--failWhenNoMutations")).isEqualTo(TRUE);
|
||||
|
||||
op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.failWhenNoMutations(false);
|
||||
assertThat(op.options().get("--failWhenNoMutations")).isEqualTo(FALSE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void fullMutationMatrix() {
|
||||
void failWhenNoMutationsIsTrue() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new BaseProject())
|
||||
.failWhenNoMutations(true);
|
||||
assertThat(op.options().get("--failWhenNoMutations")).isEqualTo(TRUE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void fullMutationMatrixIsFalse() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new BaseProject())
|
||||
.fullMutationMatrix(false);
|
||||
assertThat(op.options().get("--fullMutationMatrix")).isEqualTo(FALSE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void fullMutationMatrixIsTrue() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new BaseProject())
|
||||
.fullMutationMatrix(true);
|
||||
|
@ -673,13 +732,24 @@ class PitestOperationTest {
|
|||
.fromProject(new BaseProject())
|
||||
.mutationThreshold(3);
|
||||
assertThat(op.options().get("--mutationThreshold")).isEqualTo("3");
|
||||
}
|
||||
|
||||
op = new PitestOperation()
|
||||
@Test
|
||||
void mutationThresholdOutOfBounds() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new BaseProject())
|
||||
.mutationThreshold(101);
|
||||
assertThat(op.options().get("--mutationThreshold")).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
void mutationThresholdOutOfBoundsNegative() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new BaseProject())
|
||||
.mutationThreshold(-1);
|
||||
assertThat(op.options().get("--mutationThreshold")).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
void mutationUnitSize() {
|
||||
var op = new PitestOperation()
|
||||
|
@ -694,8 +764,11 @@ class PitestOperationTest {
|
|||
.fromProject(new BaseProject())
|
||||
.mutators(FOO, BAR);
|
||||
assertThat(op.options().get("--mutators")).isEqualTo(FOOBAR);
|
||||
}
|
||||
|
||||
op = new PitestOperation()
|
||||
@Test
|
||||
void mutatorsAsList() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.mutators(List.of(FOO, BAR));
|
||||
assertThat(op.options().get("--mutators")).isEqualTo(FOOBAR);
|
||||
|
@ -718,25 +791,28 @@ class PitestOperationTest {
|
|||
@Nested
|
||||
@DisplayName("Output Formats Tests")
|
||||
class OutputFormatsTests {
|
||||
@Test
|
||||
void outputFormats() {
|
||||
var op = new PitestOperation().outputFormats(FOO, BAR);
|
||||
assertThat(op.options().get(OUTPUT_FORMATS)).isEqualTo(FOO + ',' + BAR);
|
||||
}
|
||||
|
||||
@Test
|
||||
void outputFormatsAsFileArray() {
|
||||
var op = new PitestOperation().outputFormats(FOO_FILE, BAR_FILE);
|
||||
assertThat(op.options().get(OUTPUT_FORMATS)).isEqualTo(FOOBAR_FORMAT);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
void outputFormatsAsFileList() {
|
||||
var op = new PitestOperation().outputFormatsFiles(List.of(FOO_FILE, BAR_FILE));
|
||||
assertThat(op.options().get(OUTPUT_FORMATS)).isEqualTo(FOOBAR_FORMAT);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
void outputFormatsAsPathArray() {
|
||||
var op = new PitestOperation().outputFormats(FOO_FILE.toPath(), BAR_FILE.toPath());
|
||||
assertThat(op.options().get(OUTPUT_FORMATS)).isEqualTo(FOOBAR_FORMAT);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -745,17 +821,10 @@ class PitestOperationTest {
|
|||
assertThat(op.options().get(OUTPUT_FORMATS)).isEqualTo(FOOBAR_FORMAT);
|
||||
}
|
||||
|
||||
@Test
|
||||
void outputFormatsAsStringArray() {
|
||||
var op = new PitestOperation().outputFormats(FOO, BAR);
|
||||
assertThat(op.options().get(OUTPUT_FORMATS)).isEqualTo(FOO + ',' + BAR);
|
||||
}
|
||||
|
||||
@Test
|
||||
void outputFormatsAsStringList() {
|
||||
var op = new PitestOperation().outputFormats(List.of(FOO, BAR));
|
||||
assertThat(op.options().get(OUTPUT_FORMATS)).isEqualTo(FOO + ',' + BAR);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -789,6 +858,12 @@ class PitestOperationTest {
|
|||
class SourceDirectoriesTests {
|
||||
private static final String SOURCE_DIRS = "--sourceDirs";
|
||||
|
||||
@Test
|
||||
void sourceDirs() {
|
||||
var op = new PitestOperation().sourceDirs(FOO, BAR);
|
||||
assertThat(op.options().get(SOURCE_DIRS)).isEqualTo(FOO + ',' + BAR);
|
||||
}
|
||||
|
||||
@Test
|
||||
void sourceDirsAsFileArray() {
|
||||
var op = new PitestOperation().sourceDirs(FOO_FILE, BAR_FILE);
|
||||
|
@ -813,12 +888,6 @@ class PitestOperationTest {
|
|||
assertThat(op.options().get(SOURCE_DIRS)).isEqualTo(FOOBAR_FORMAT);
|
||||
}
|
||||
|
||||
@Test
|
||||
void sourceDirsAsStringArray() {
|
||||
var op = new PitestOperation().sourceDirs(FOO, BAR);
|
||||
assertThat(op.options().get(SOURCE_DIRS)).isEqualTo(FOO + ',' + BAR);
|
||||
}
|
||||
|
||||
@Test
|
||||
void sourceDirsAsStringList() {
|
||||
var op = new PitestOperation().sourceDirs(List.of(FOO, BAR));
|
||||
|
@ -835,8 +904,11 @@ class PitestOperationTest {
|
|||
.fromProject(new BaseProject())
|
||||
.targetClasses(FOO, BAR);
|
||||
assertThat(op.options().get("--targetClasses")).isEqualTo(FOOBAR);
|
||||
}
|
||||
|
||||
op = new PitestOperation()
|
||||
@Test
|
||||
void targetClassesAsList() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.targetClasses(List.of(FOO, BAR));
|
||||
assertThat(op.options().get("--targetClasses")).isEqualTo(FOOBAR);
|
||||
|
@ -848,8 +920,11 @@ class PitestOperationTest {
|
|||
.fromProject(new BaseProject())
|
||||
.targetTests(FOO, BAR);
|
||||
assertThat(op.options().get("--targetTests")).isEqualTo(FOOBAR);
|
||||
}
|
||||
|
||||
op = new PitestOperation()
|
||||
@Test
|
||||
void targetTestsAsList() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.targetTests(List.of(FOO, BAR));
|
||||
assertThat(op.options().get("--targetTests")).isEqualTo(FOOBAR);
|
||||
|
@ -880,16 +955,19 @@ class PitestOperationTest {
|
|||
@DisplayName("Verbose Tests")
|
||||
class VerboseTests {
|
||||
@Test
|
||||
void verbose() {
|
||||
void verboseIsFalse() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.verbose(false);
|
||||
assertThat(op.options().get("--verbose")).isEqualTo(FALSE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void verboseIsTrue() {
|
||||
var op = new PitestOperation()
|
||||
.fromProject(new BaseProject())
|
||||
.verbose(true);
|
||||
assertThat(op.options().get("--verbose")).isEqualTo(TRUE);
|
||||
|
||||
op = new PitestOperation()
|
||||
.fromProject(new Project())
|
||||
.verbose(false);
|
||||
assertThat(op.options().get("--verbose")).isEqualTo(FALSE);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue