Number of utilities for writing gradle integration tests (#32282)
These are collected from a number of open PRs and are required to improove existing and write more readable future tests. I am extracting them to their own PR hoping to be able to merge and use them sooner.
This commit is contained in:
parent
b6c14935d7
commit
6aea82956c
|
@ -1,6 +1,11 @@
|
||||||
package org.elasticsearch.gradle.test;
|
package org.elasticsearch.gradle.test;
|
||||||
|
|
||||||
|
import org.gradle.testkit.runner.GradleRunner;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
public abstract class GradleIntegrationTestCase extends GradleUnitTestCase {
|
public abstract class GradleIntegrationTestCase extends GradleUnitTestCase {
|
||||||
|
|
||||||
|
@ -13,4 +18,47 @@ public abstract class GradleIntegrationTestCase extends GradleUnitTestCase {
|
||||||
return new File(root, name);
|
return new File(root, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected GradleRunner getGradleRunner(String sampleProject) {
|
||||||
|
return GradleRunner.create()
|
||||||
|
.withProjectDir(getProjectDir(sampleProject))
|
||||||
|
.withPluginClasspath();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected File getBuildDir(String name) {
|
||||||
|
return new File(getProjectDir(name), "build");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void assertOutputContains(String output, String... lines) {
|
||||||
|
for (String line : lines) {
|
||||||
|
assertOutputContains(output, line);
|
||||||
|
}
|
||||||
|
List<Integer> index = Stream.of(lines).map(line -> output.indexOf(line)).collect(Collectors.toList());
|
||||||
|
if (index.equals(index.stream().sorted().collect(Collectors.toList())) == false) {
|
||||||
|
fail("Expected the following lines to appear in this order:\n" +
|
||||||
|
Stream.of(lines).map(line -> " - `" + line + "`").collect(Collectors.joining("\n")) +
|
||||||
|
"\nBut they did not. Output is:\n\n```" + output + "\n```\n"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void assertOutputContains(String output, String line) {
|
||||||
|
assertTrue(
|
||||||
|
"Expected the following line in output:\n\n" + line + "\n\nOutput is:\n" + output,
|
||||||
|
output.contains(line)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void assertOutputDoesNotContain(String output, String line) {
|
||||||
|
assertFalse(
|
||||||
|
"Expected the following line not to be in output:\n\n" + line + "\n\nOutput is:\n" + output,
|
||||||
|
output.contains(line)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void assertOutputDoesNotContain(String output, String... lines) {
|
||||||
|
for (String line : lines) {
|
||||||
|
assertOutputDoesNotContain(line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue