Skip to content

Commit afa3a99

Browse files
committed
[Core] Fix locale in DefaultSummaryPrinter
The `Stats` would use `Locale.getDefault()` resulting in different test output by the `DefaultSummaryPrinter` when used in a locale with a different decimal separator (e.g: France). Fixing the locale to US in the test should avoid this problem. Closes: #2010
1 parent 5f414b6 commit afa3a99

File tree

3 files changed

+7
-9
lines changed

3 files changed

+7
-9
lines changed

core/src/main/java/io/cucumber/core/plugin/DefaultSummaryPrinter.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,22 @@
1111
import java.io.PrintStream;
1212
import java.util.LinkedHashSet;
1313
import java.util.List;
14+
import java.util.Locale;
1415
import java.util.Set;
1516

1617
public final class DefaultSummaryPrinter implements SummaryPrinter, ColorAware, ConcurrentEventListener {
1718

1819
private final Set<String> snippets = new LinkedHashSet<>();
19-
private final Stats stats = new Stats();
20-
20+
private final Stats stats;
2121
private final PrintStream out;
2222

2323
public DefaultSummaryPrinter() {
24-
this(System.out);
24+
this(System.out, Locale.getDefault());
2525
}
2626

27-
DefaultSummaryPrinter(OutputStream out) {
27+
DefaultSummaryPrinter(OutputStream out, Locale locale) {
2828
this.out = new PrintStream(out);
29+
this.stats = new Stats(locale);
2930
}
3031

3132
@Override

core/src/main/java/io/cucumber/core/plugin/Stats.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,6 @@ class Stats implements ConcurrentEventListener, ColorAware {
4040
private Duration totalDuration = Duration.ZERO;
4141
private Formats formats = new AnsiFormats();
4242

43-
Stats() {
44-
this(Locale.getDefault());
45-
}
46-
4743
Stats(Locale locale) {
4844
this.locale = locale;
4945
}

core/src/test/java/io/cucumber/core/plugin/DefaultSummaryPrinterTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import java.net.URI;
1212
import java.time.Clock;
1313
import java.time.ZoneId;
14+
import java.util.Locale;
1415
import java.util.UUID;
1516

1617
import static java.nio.charset.StandardCharsets.UTF_8;
@@ -22,7 +23,7 @@
2223
class DefaultSummaryPrinterTest {
2324

2425
private final ByteArrayOutputStream out = new ByteArrayOutputStream();
25-
private final DefaultSummaryPrinter summaryPrinter = new DefaultSummaryPrinter(out);
26+
private final DefaultSummaryPrinter summaryPrinter = new DefaultSummaryPrinter(out, Locale.US);
2627
private final EventBus bus = new TimeServiceEventBus(
2728
Clock.fixed(ofEpochSecond(0), ZoneId.of("UTC")),
2829
UUID::randomUUID);

0 commit comments

Comments
 (0)