Skip to content

Commit 82130f3

Browse files
committed
Add integration test for ToolProvider implementation
1 parent 8d266e0 commit 82130f3

3 files changed

Lines changed: 59 additions & 3 deletions

File tree

core/src/main/java/com/google/googlejavaformat/java/FormatToolProvider.java renamed to core/src/main/java/com/google/googlejavaformat/java/GoogleJavaFormatToolProvider.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
import java.io.PrintWriter;
44
import java.util.spi.ToolProvider;
55

6-
public class FormatToolProvider implements ToolProvider {
6+
/** Provide a way to be invoked without necessarily starting a new VM. */
7+
public class GoogleJavaFormatToolProvider implements ToolProvider {
78
public String name() {
8-
return "format";
9+
return "google-java-format";
910
}
1011

1112
public int run(PrintWriter out, PrintWriter err, String... args) {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
com.google.googlejavaformat.java.FormatToolProvider
1+
com.google.googlejavaformat.java.GoogleJavaFormatToolProvider
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
/*
2+
* Copyright 2021 Google Inc.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5+
* in compliance with the License. You may obtain a copy of the License at
6+
*
7+
* http://www.apache.org/licenses/LICENSE-2.0
8+
*
9+
* Unless required by applicable law or agreed to in writing, software distributed under the License
10+
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11+
* or implied. See the License for the specific language governing permissions and limitations under
12+
* the License.
13+
*/
14+
15+
package com.google.googlejavaformat.java;
16+
17+
import static com.google.common.truth.Truth.assertThat;
18+
19+
import java.io.PrintWriter;
20+
import java.io.StringWriter;
21+
import java.util.ServiceLoader;
22+
import java.util.spi.ToolProvider;
23+
import org.junit.Test;
24+
import org.junit.runner.RunWith;
25+
import org.junit.runners.JUnit4;
26+
27+
/** Tests for {@link GoogleJavaFormatToolProvider}. */
28+
@RunWith(JUnit4.class)
29+
public class GoogleJavaFormatToolProviderTest {
30+
31+
@Test
32+
public void testUsageOutputAfterLoadingViaToolName() {
33+
String name = "google-java-format";
34+
35+
ToolProvider format =
36+
ServiceLoader.load(ToolProvider.class).stream()
37+
.map(ServiceLoader.Provider::get)
38+
.filter(provider -> provider.name().equals(name))
39+
.findAny()
40+
.orElseThrow(() -> new AssertionError("Tool not found by name: " + name));
41+
42+
StringWriter out = new StringWriter();
43+
StringWriter err = new StringWriter();
44+
45+
int result = format.run(new PrintWriter(out, true), new PrintWriter(err, true), "--help");
46+
47+
assertThat(result).isEqualTo(0);
48+
49+
String usage = err.toString();
50+
51+
// Check that doc links are included.
52+
assertThat(usage).contains("https://github.com/google/google-java-format");
53+
assertThat(usage).contains("Usage: google-java-format");
54+
}
55+
}

0 commit comments

Comments
 (0)