-
Notifications
You must be signed in to change notification settings - Fork 437
/
SpecificFilesTest.java
78 lines (65 loc) · 2.42 KB
/
SpecificFilesTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/*
* Copyright 2016-2020 DiffPlug
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.diffplug.spotless.maven;
import java.io.IOException;
import org.junit.Test;
public class SpecificFilesTest extends MavenIntegrationHarness {
private String testFile(int number, boolean absolute) throws IOException {
String rel = "src/main/java/test" + number + ".java";
if (absolute) {
return rootFolder() + "/" + rel;
} else {
return rel;
}
}
private String testFile(int number) throws IOException {
return testFile(number, false);
}
private String fixture(boolean formatted) {
return "java/googlejavaformat/JavaCode" + (formatted ? "F" : "Unf") + "ormatted.test";
}
private void integration(String patterns, boolean firstFormatted, boolean secondFormatted, boolean thirdFormatted)
throws IOException, InterruptedException {
writePomWithJavaSteps(
"<includes>",
" <include>src/**/java/**/*.java</include>",
"</includes>",
"<googleJavaFormat>",
" <version>1.2</version>",
"</googleJavaFormat>");
setFile(testFile(1)).toResource(fixture(false));
setFile(testFile(2)).toResource(fixture(false));
setFile(testFile(3)).toResource(fixture(false));
mavenRunner()
.withArguments("spotless:apply", "-DspotlessFiles=" + patterns)
.runNoError();
assertFile(testFile(1)).sameAsResource(fixture(firstFormatted));
assertFile(testFile(2)).sameAsResource(fixture(secondFormatted));
assertFile(testFile(3)).sameAsResource(fixture(thirdFormatted));
}
@Test
public void singleFile() throws IOException, InterruptedException {
integration(testFile(2, true), false, true, false);
}
@Test
public void multiFile() throws IOException, InterruptedException {
integration(testFile(1, true) + "," + testFile(3, true), true, false, true);
}
@Test
public void regexp() throws IOException, InterruptedException {
integration(".*/src/main/java/test\\(1\\|3\\).java", true, false, true);
}
}