diff --git a/java/.mvn/jvm.config b/java/.mvn/jvm.config
new file mode 100644
index 0000000..32599ce
--- /dev/null
+++ b/java/.mvn/jvm.config
@@ -0,0 +1,10 @@
+--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
+--add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
+--add-exports jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED
+--add-exports jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED
+--add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
+--add-exports jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED
+--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
+--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
+--add-opens jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
+--add-opens jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED
diff --git a/java/pom.xml b/java/pom.xml
index 7e61d0e..80dc54c 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -6,18 +6,18 @@
io.cucumber
cucumber-parent
- 4.5.0
+ 5.0.0-SNAPSHOT
teamcity-formatter
- 0.2.1-SNAPSHOT
+ 0.3.0-SNAPSHOT
jar
TeamCity Formatter
Interspaces Cucumbers output with TeamCity Service Messages
https://github.com/cucumber/teamcity-formatter
- io.cucumber.teamcityformatter
+ io.cucumber.teamcityformatter
1761578982
@@ -60,12 +60,12 @@
io.cucumber
messages
- [29.0.1,31.0.0)
+ [32.0.0-SNAPSHOT,33.0.0)
io.cucumber
query
- [14.0.1,15.0.0)
+ [15.0.0-SNAPSHOT,16.0.0)
@@ -132,4 +132,22 @@
test
+
+
+
+
+ org.apache.maven.plugins
+ maven-checkstyle-plugin
+
+
+ validate
+ validate
+
+ check
+
+
+
+
+
+
diff --git a/java/src/main/java/io/cucumber/teamcityformatter/ComparisonFailure.java b/java/src/main/java/io/cucumber/teamcityformatter/ComparisonFailure.java
index 8b12c80..d22ecde 100644
--- a/java/src/main/java/io/cucumber/teamcityformatter/ComparisonFailure.java
+++ b/java/src/main/java/io/cucumber/teamcityformatter/ComparisonFailure.java
@@ -1,5 +1,7 @@
package io.cucumber.teamcityformatter;
+import org.jspecify.annotations.Nullable;
+
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -25,6 +27,7 @@ final class ComparisonFailure {
Pattern.DOTALL | Pattern.CASE_INSENSITIVE),
};
+ @Nullable
static ComparisonFailure parse(String message) {
for (Pattern pattern : COMPARE_PATTERNS) {
ComparisonFailure result = parse(message, pattern);
@@ -35,6 +38,7 @@ static ComparisonFailure parse(String message) {
return null;
}
+ @Nullable
static ComparisonFailure parse(String message, Pattern pattern) {
final Matcher matcher = pattern.matcher(message);
if (!matcher.find()) {
diff --git a/java/src/main/java/io/cucumber/teamcityformatter/OrderableEvent.java b/java/src/main/java/io/cucumber/teamcityformatter/OrderableEvent.java
index 57c89fc..49e7b0d 100644
--- a/java/src/main/java/io/cucumber/teamcityformatter/OrderableEvent.java
+++ b/java/src/main/java/io/cucumber/teamcityformatter/OrderableEvent.java
@@ -1,17 +1,20 @@
package io.cucumber.teamcityformatter;
+import org.jspecify.annotations.Nullable;
+
import java.util.Comparator;
import static java.util.Comparator.naturalOrder;
import static java.util.Comparator.nullsFirst;
+import static java.util.Objects.requireNonNull;
final class OrderableEvent implements Comparable> {
private final T event;
- private final String uri;
- private final Long line;
+ private final @Nullable String uri;
+ private final @Nullable Integer line;
- OrderableEvent(T event, String uri, Long line) {
- this.event = event;
+ OrderableEvent(T event, @Nullable String uri, @Nullable Integer line) {
+ this.event = requireNonNull(event);
this.uri = uri;
this.line = line;
}
diff --git a/java/src/main/java/io/cucumber/teamcityformatter/PathCollector.java b/java/src/main/java/io/cucumber/teamcityformatter/PathCollector.java
index a0b263a..a0e5290 100644
--- a/java/src/main/java/io/cucumber/teamcityformatter/PathCollector.java
+++ b/java/src/main/java/io/cucumber/teamcityformatter/PathCollector.java
@@ -8,18 +8,25 @@
import io.cucumber.messages.types.Scenario;
import io.cucumber.messages.types.TableRow;
import io.cucumber.query.LineageReducer;
+import org.jspecify.annotations.Nullable;
import java.util.ArrayList;
import java.util.List;
+import static java.util.Objects.requireNonNull;
+
final class PathCollector implements LineageReducer.Collector> {
// There are at most 5 levels to a feature file.
private final List lineage = new ArrayList<>(5);
- private String uri;
- private String scenarioName;
+ private @Nullable String uri;
+ private @Nullable String scenarioName;
private int examplesIndex;
private boolean isExample;
+ private String getRequiredUri() {
+ return requireNonNull(uri);
+ }
+
@Override
public void add(GherkinDocument document) {
uri = document.getUri().orElse("");
@@ -28,26 +35,26 @@ public void add(GherkinDocument document) {
@Override
public void add(Feature feature) {
String name = getNameOrKeyword(feature.getName(), feature.getKeyword());
- lineage.add(new LineageNode(name, uri, feature.getLocation()));
+ lineage.add(new LineageNode(name, getRequiredUri(), feature.getLocation()));
}
@Override
public void add(Rule rule) {
String name = getNameOrKeyword(rule.getName(), rule.getKeyword());
- lineage.add(new LineageNode(name, uri, rule.getLocation()));
+ lineage.add(new LineageNode(name, getRequiredUri(), rule.getLocation()));
}
@Override
public void add(Scenario scenario) {
String name = getNameOrKeyword(scenario.getName(), scenario.getKeyword());
- lineage.add(new LineageNode(name, uri, scenario.getLocation()));
+ lineage.add(new LineageNode(name, getRequiredUri(), scenario.getLocation()));
scenarioName = name;
}
@Override
public void add(Examples examples, int index) {
String name = getNameOrKeyword(examples.getName(), examples.getKeyword());
- lineage.add(new LineageNode(name, uri, examples.getLocation()));
+ lineage.add(new LineageNode(name, getRequiredUri(), examples.getLocation()));
examplesIndex = index;
}
@@ -55,7 +62,7 @@ public void add(Examples examples, int index) {
public void add(TableRow example, int index) {
isExample = true;
String name = "#" + (examplesIndex + 1) + "." + (index + 1);
- lineage.add(new LineageNode(name, uri, example.getLocation()));
+ lineage.add(new LineageNode(name, getRequiredUri(), example.getLocation()));
}
@Override
@@ -63,7 +70,7 @@ public void add(Pickle pickle) {
// Case 1: Pickles from a scenario outline
if (isExample) {
String pickleName = pickle.getName();
- boolean parameterized = !scenarioName.equals(pickleName);
+ boolean parameterized = !pickleName.equals(scenarioName);
if (parameterized) {
LineageNode example = lineage.remove(lineage.size() - 1);
String parameterizedExampleName = example.getName() + ": " + pickleName;
diff --git a/java/src/main/java/io/cucumber/teamcityformatter/SourceReferenceFormatter.java b/java/src/main/java/io/cucumber/teamcityformatter/SourceReferenceFormatter.java
index bc68044..5ad48de 100644
--- a/java/src/main/java/io/cucumber/teamcityformatter/SourceReferenceFormatter.java
+++ b/java/src/main/java/io/cucumber/teamcityformatter/SourceReferenceFormatter.java
@@ -8,6 +8,10 @@
final class SourceReferenceFormatter {
+ private SourceReferenceFormatter(){
+ /* no-op */
+ }
+
static Optional formatLocation(SourceReference sourceReference) {
if (sourceReference.getJavaMethod().isPresent()) {
return sourceReference.getJavaMethod()
diff --git a/java/src/main/java/io/cucumber/teamcityformatter/SuggestionFormatter.java b/java/src/main/java/io/cucumber/teamcityformatter/SuggestionFormatter.java
index d3552df..ac4314c 100644
--- a/java/src/main/java/io/cucumber/teamcityformatter/SuggestionFormatter.java
+++ b/java/src/main/java/io/cucumber/teamcityformatter/SuggestionFormatter.java
@@ -9,6 +9,10 @@
final class SuggestionFormatter {
+ private SuggestionFormatter(){
+ /* no-op */
+ }
+
static String format(Collection suggestions) {
if (suggestions.isEmpty()) {
return "";
diff --git a/java/src/main/java/io/cucumber/teamcityformatter/TeamCityWriter.java b/java/src/main/java/io/cucumber/teamcityformatter/TeamCityWriter.java
index 4e250e2..133b8fb 100644
--- a/java/src/main/java/io/cucumber/teamcityformatter/TeamCityWriter.java
+++ b/java/src/main/java/io/cucumber/teamcityformatter/TeamCityWriter.java
@@ -137,7 +137,7 @@ private Stream findAllTestCaseStartedInCanonicalOrder() {
.map(testCaseStarted -> {
Optional pickle = query.findPickleBy(testCaseStarted);
String uri = pickle.map(Pickle::getUri).orElse(null);
- Long line = pickle.flatMap(query::findLocationOf).map(Location::getLine).orElse(null);
+ Integer line = pickle.flatMap(query::findLocationOf).map(Location::getLine).orElse(null);
return new OrderableEvent<>(testCaseStarted, uri, line);
})
.sorted()
@@ -298,23 +298,19 @@ private void printTestStepFinished(TestStepFinished event) {
Optional error = testStepResult.getException();
TestStepResultStatus status = testStepResult.getStatus();
switch (status) {
- case SKIPPED: {
+ case SKIPPED -> {
String message = error.flatMap(Exception::getMessage).orElse("Step skipped");
out.print(TEMPLATE_TEST_IGNORED, timeStamp, duration, message, name);
- break;
}
- case PENDING: {
+ case PENDING -> {
String details = error.flatMap(Exception::getMessage).orElse("");
out.print(TEMPLATE_TEST_FAILED, timeStamp, duration, "Step pending", details, name);
- break;
}
- case UNDEFINED: {
+ case UNDEFINED -> {
String snippets = findSnippets(event).orElse("");
out.print(TEMPLATE_TEST_FAILED, timeStamp, duration, "Step undefined", snippets, name);
- break;
}
- case AMBIGUOUS:
- case FAILED: {
+ case AMBIGUOUS, FAILED -> {
String details = error.flatMap(Exception::getStackTrace).orElse("");
String message = error.flatMap(Exception::getMessage).orElse(null);
if (message == null) {
@@ -328,10 +324,9 @@ private void printTestStepFinished(TestStepFinished event) {
}
out.print(TEMPLATE_TEST_COMPARISON_FAILED, timeStamp, duration, "Step failed", details,
comparisonFailure.getExpected(), comparisonFailure.getActual(), name);
- break;
}
- default:
- break;
+ default -> {
+ }
}
out.print(TEMPLATE_TEST_FINISHED, timeStamp, duration, name);
});
@@ -359,23 +354,13 @@ private static String formatHookStepName(Hook hook) {
private static String getHookType(Hook hook) {
return hook.getType().map(
- hookType -> {
- switch (hookType) {
- case BEFORE_TEST_RUN:
- return "BeforeAll";
- case AFTER_TEST_RUN:
- return "AfterAll";
- case BEFORE_TEST_CASE:
- return "Before";
- case AFTER_TEST_CASE:
- return "After";
- case BEFORE_TEST_STEP:
- return "BeforeStep";
- case AFTER_TEST_STEP:
- return "AfterStep";
- default:
- return "Unknown";
- }
+ hookType -> switch (hookType) {
+ case BEFORE_TEST_RUN -> "BeforeAll";
+ case AFTER_TEST_RUN -> "AfterAll";
+ case BEFORE_TEST_CASE -> "Before";
+ case AFTER_TEST_CASE -> "After";
+ case BEFORE_TEST_STEP -> "BeforeStep";
+ case AFTER_TEST_STEP -> "AfterStep";
}).orElse("Unknown");
}
@@ -417,10 +402,7 @@ private void printBeforeAfterAllResult(TestRunFinished event, String timestamp)
}
private void handleAttachment(Attachment event) {
- String message = extractAttachmentMessage(event);
- if (message != null) {
- handleAttachment(message);
- }
+ handleAttachment(extractAttachmentMessage(event));
}
private void handleAttachment(String message) {
@@ -428,16 +410,14 @@ private void handleAttachment(String message) {
}
private static String extractAttachmentMessage(Attachment event) {
- switch (event.getContentEncoding()) {
- case IDENTITY:
- return "Write event:\n" + event.getBody() + "\n";
- case BASE64:
+ return switch (event.getContentEncoding()) {
+ case IDENTITY -> "Write event:\n" + event.getBody() + "\n";
+ case BASE64 -> {
String name = event.getFileName().map(s -> s + " ").orElse("");
- return "Embed event: " + name + "[" + event.getMediaType() + " " + (event.getBody().length() / 4) * 3
+ yield "Embed event: " + name + "[" + event.getMediaType() + " " + (event.getBody().length() / 4) * 3
+ " bytes]\n";
- default:
- return null;
- }
+ }
+ };
}
private static String formatTimeStamp(Timestamp timestamp) {
diff --git a/java/src/main/java/io/cucumber/teamcityformatter/package-info.java b/java/src/main/java/io/cucumber/teamcityformatter/package-info.java
new file mode 100644
index 0000000..e5a8c36
--- /dev/null
+++ b/java/src/main/java/io/cucumber/teamcityformatter/package-info.java
@@ -0,0 +1,4 @@
+@NullMarked
+package io.cucumber.teamcityformatter;
+
+import org.jspecify.annotations.NullMarked;
diff --git a/java/src/main/java/module-info.java b/java/src/main/java/module-info.java
new file mode 100644
index 0000000..81f6338
--- /dev/null
+++ b/java/src/main/java/module-info.java
@@ -0,0 +1,8 @@
+module io.cucumber.teamcityformatter {
+ requires org.jspecify;
+
+ requires io.cucumber.messages;
+ requires io.cucumber.query;
+
+ exports io.cucumber.teamcityformatter;
+}
diff --git a/java/src/test/java/io/cucumber/teamcityformatter/ComparisonFailureTest.java b/java/src/test/java/io/cucumber/teamcityformatter/ComparisonFailureTest.java
index 9859dc4..c178b85 100644
--- a/java/src/test/java/io/cucumber/teamcityformatter/ComparisonFailureTest.java
+++ b/java/src/test/java/io/cucumber/teamcityformatter/ComparisonFailureTest.java
@@ -2,7 +2,9 @@
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.function.Executable;
+import org.junit.jupiter.params.shadow.de.siegmar.fastcsv.util.Nullable;
+import static java.util.Objects.requireNonNull;
import static org.assertj.core.api.Assertions.assertThat;
import static org.hamcrest.core.IsEqual.equalTo;
import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -33,7 +35,6 @@ void junit5() {
.containsExactly("1", "42");
}
- @SuppressWarnings("JUnit5AssertionsConverter")
@Test
void junit4() {
ComparisonFailure comparisonFailure = create(() -> org.junit.Assert.assertEquals(1, 42));
@@ -50,9 +51,9 @@ void testng7() {
.containsExactly("1", "42");
}
- private static ComparisonFailure create(Executable executable) {
+ private static @Nullable ComparisonFailure create(Executable executable) {
AssertionError exception = assertThrows(AssertionError.class, executable);
- return ComparisonFailure.parse(exception.getMessage());
+ return ComparisonFailure.parse(requireNonNull(exception.getMessage()));
}
}
diff --git a/java/src/test/java/io/cucumber/teamcityformatter/Jackson.java b/java/src/test/java/io/cucumber/teamcityformatter/Jackson.java
index aa2225d..647ee16 100644
--- a/java/src/test/java/io/cucumber/teamcityformatter/Jackson.java
+++ b/java/src/test/java/io/cucumber/teamcityformatter/Jackson.java
@@ -3,6 +3,7 @@
import com.fasterxml.jackson.annotation.JsonCreator.Mode;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.cfg.ConstructorDetector;
@@ -24,6 +25,7 @@ final class Jackson {
.enable(DeserializationFeature.USE_LONG_FOR_INTS)
.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
.disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET)
+ .disable(MapperFeature.CAN_OVERRIDE_ACCESS_MODIFIERS)
.build();
private Jackson() {
diff --git a/java/src/test/java/io/cucumber/teamcityformatter/MessagesToTeamCityWriterAcceptanceTest.java b/java/src/test/java/io/cucumber/teamcityformatter/MessagesToTeamCityWriterAcceptanceTest.java
index b7bb55f..37c289f 100644
--- a/java/src/test/java/io/cucumber/teamcityformatter/MessagesToTeamCityWriterAcceptanceTest.java
+++ b/java/src/test/java/io/cucumber/teamcityformatter/MessagesToTeamCityWriterAcceptanceTest.java
@@ -3,7 +3,6 @@
import io.cucumber.compatibilitykit.MessageOrderer;
import io.cucumber.messages.NdjsonToMessageIterable;
import io.cucumber.messages.types.Envelope;
-import io.cucumber.teamcityformatter.MessagesToTeamCityWriter.Builder;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
@@ -25,12 +24,13 @@
import static io.cucumber.teamcityformatter.Jackson.OBJECT_MAPPER;
import static io.cucumber.teamcityformatter.MessagesToTeamCityWriter.TeamCityFeature.PRINT_TEST_CASES_AFTER_TEST_RUN;
-import static java.nio.file.Files.readAllBytes;
+import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assumptions.assumeFalse;
class MessagesToTeamCityWriterAcceptanceTest {
- private static final NdjsonToMessageIterable.Deserializer deserializer = (json) -> OBJECT_MAPPER.readValue(json, Envelope.class);
+ private static final NdjsonToMessageIterable.Deserializer deserializer = json -> OBJECT_MAPPER.readValue(json, Envelope.class);
private static final Random random = new Random(202509121959L);
private static final MessageOrderer messageOrderer = new MessageOrderer(random);
@@ -51,11 +51,11 @@ private static List getSources() throws IOException {
}
}
- private static ByteArrayOutputStream writePrettyReport(TestCase testCase, Builder builder, Consumer> orderer) throws IOException {
+ private static ByteArrayOutputStream writePrettyReport(TestCase testCase, MessagesToTeamCityWriter.Builder builder, Consumer> orderer) throws IOException {
return writePrettyReport(testCase, new ByteArrayOutputStream(), builder, orderer);
}
- private static T writePrettyReport(TestCase testCase, T out, Builder builder, Consumer> orderer) throws IOException {
+ private static T writePrettyReport(TestCase testCase, T out, MessagesToTeamCityWriter.Builder builder, Consumer> orderer) throws IOException {
List messages = new ArrayList<>();
try (InputStream in = Files.newInputStream(testCase.source)) {
try (NdjsonToMessageIterable envelopes = new NdjsonToMessageIterable(in, deserializer)) {
@@ -76,7 +76,7 @@ private static T writePrettyReport(TestCase testCase, T
@MethodSource("acceptance")
void test(TestCase testCase) throws IOException {
ByteArrayOutputStream bytes = writePrettyReport(testCase, testCase.builder, messageOrderer.originalOrder());
- assertThat(bytes.toString()).isEqualToIgnoringNewLines(new String(readAllBytes(testCase.expected)));
+ assertThat(bytes.toString(UTF_8)).isEqualToIgnoringNewLines(Files.readString(testCase.expected));
}
private final List exceptions = Arrays.asList(
@@ -91,18 +91,18 @@ void test(TestCase testCase) throws IOException {
void testPrintAfterTestRun(TestCase testCase) throws IOException {
assumeFalse(() -> exceptions.contains(testCase.name));
- Builder builder = testCase.builder.feature(PRINT_TEST_CASES_AFTER_TEST_RUN, true);
+ MessagesToTeamCityWriter.Builder builder = testCase.builder.feature(PRINT_TEST_CASES_AFTER_TEST_RUN, true);
ByteArrayOutputStream bytes = writePrettyReport(testCase, builder, messageOrderer.originalOrder());
- assertThat(bytes.toString()).isEqualToIgnoringNewLines(new String(readAllBytes(testCase.expected)));
+ assertThat(bytes.toString(UTF_8)).isEqualToIgnoringNewLines(Files.readString(testCase.expected));
}
@ParameterizedTest
@MethodSource("acceptance")
void testPrintAfterTestRunWithSimulatedParallelExecution(TestCase testCase) throws IOException {
assumeFalse(() -> exceptions.contains(testCase.name));
- Builder builder = testCase.builder.feature(PRINT_TEST_CASES_AFTER_TEST_RUN, true);
+ MessagesToTeamCityWriter.Builder builder = testCase.builder.feature(PRINT_TEST_CASES_AFTER_TEST_RUN, true);
ByteArrayOutputStream bytes = writePrettyReport(testCase, builder, messageOrderer.simulateParallelExecution());
- assertThat(bytes.toString()).isEqualToIgnoringNewLines(new String(readAllBytes(testCase.expected)));
+ assertThat(bytes.toString(UTF_8)).isEqualToIgnoringNewLines(Files.readString(testCase.expected));
}
@ParameterizedTest
@@ -116,17 +116,17 @@ void updateExpectedFiles(TestCase testCase) throws IOException {
static class TestCase {
private final Path source;
- private final Builder builder;
+ private final MessagesToTeamCityWriter.Builder builder;
private final Path expected;
private final String name;
- TestCase(Path source, Builder builder) {
+ TestCase(Path source, MessagesToTeamCityWriter.Builder builder) {
this.source = source;
this.builder = builder;
String fileName = source.getFileName().toString();
this.name = fileName.substring(0, fileName.lastIndexOf(".ndjson"));
- this.expected = source.getParent().resolve(name + ".log");
+ this.expected = requireNonNull(source.getParent()).resolve(name + ".log");
}
@Override
diff --git a/java/src/test/java/io/cucumber/teamcityformatter/MessagesToTeamCityWriterTest.java b/java/src/test/java/io/cucumber/teamcityformatter/MessagesToTeamCityWriterTest.java
index 2be2fa2..4ca84ca 100644
--- a/java/src/test/java/io/cucumber/teamcityformatter/MessagesToTeamCityWriterTest.java
+++ b/java/src/test/java/io/cucumber/teamcityformatter/MessagesToTeamCityWriterTest.java
@@ -3,6 +3,7 @@
import io.cucumber.messages.types.Envelope;
import io.cucumber.messages.types.TestRunFinished;
import io.cucumber.messages.types.TestRunStarted;
+import io.cucumber.messages.types.Timestamp;
import org.junit.jupiter.api.Test;
import java.io.ByteArrayOutputStream;
@@ -46,7 +47,9 @@ void it_throws_when_writing_after_close() throws IOException {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
MessagesToTeamCityWriter writer = create(bytes);
writer.close();
- assertThrows(IOException.class, () -> writer.write(null));
+ assertThrows(IOException.class, () -> writer.write(
+ Envelope.of(new TestRunStarted(new Timestamp(0L, 0), ""))
+ ));
}
@Test
diff --git a/java/src/test/java/io/cucumber/teamcityformatter/SourceReferenceFormatterTest.java b/java/src/test/java/io/cucumber/teamcityformatter/SourceReferenceFormatterTest.java
index 21efc5e..00d8565 100644
--- a/java/src/test/java/io/cucumber/teamcityformatter/SourceReferenceFormatterTest.java
+++ b/java/src/test/java/io/cucumber/teamcityformatter/SourceReferenceFormatterTest.java
@@ -11,8 +11,8 @@
import static org.assertj.core.api.Assertions.assertThat;
/**
- * Could be replaced by compatibility-kit#131.
- */
+ * Could be replaced by compatibility-kit#131.
+ */
class SourceReferenceFormatterTest {
@Test
@@ -69,7 +69,7 @@ void stacktrace() {
"path/to/org/example/Example.java",
"example"
),
- new Location(31415L, 42L)
+ new Location(31415, 42)
);
assertThat(SourceReferenceFormatter.formatLocation(sourceReference))
.contains("java:test://org.example.Example/example");
@@ -86,7 +86,7 @@ void stacktrace_unnamed_packaged() {
"path/to/Example.java",
""
),
- new Location(31415L, 42L)
+ new Location(31415, 42)
);
assertThat(SourceReferenceFormatter.formatLocation(sourceReference))
.contains("java:test://Example/Example");
@@ -102,7 +102,7 @@ void stacktrace__constructor() {
"path/to/org/example/Example.java",
""
),
- new Location(31415L, 42L)
+ new Location(31415, 42)
);
assertThat(SourceReferenceFormatter.formatLocation(sourceReference))
.contains("java:test://org.example.Example/Example");