Skip to content

Commit 06c0237

Browse files
committed
- F InlineJavaReporter uses tabs or spaces as found in source
1 parent 87223db commit 06c0237

File tree

3 files changed

+103
-88
lines changed

3 files changed

+103
-88
lines changed

approvaltests-tests/src/test/java/org/approvaltests/InlineApprovalsTest.java

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package org.approvaltests;
22

33
import org.approvaltests.core.Options;
4-
import org.approvaltests.inline.InlineComparator;
54
import org.approvaltests.inline.InlineJavaReporter;
6-
import org.approvaltests.reporters.*;
5+
import org.approvaltests.reporters.DiffMergeReporter;
6+
import org.approvaltests.reporters.FirstWorkingReporter;
7+
import org.approvaltests.reporters.QuietReporter;
8+
import org.approvaltests.reporters.UseReporter;
79
import org.junit.jupiter.api.Test;
810
import org.junit.jupiter.api.condition.EnabledOnJre;
911
import org.junit.jupiter.api.condition.JRE;
@@ -42,39 +44,39 @@ public void testWithSpecificReporter()
4244
public void testCreateReceivedFileText()
4345
{
4446
var inputs = List.of("""
45-
@Test
46-
public void testyMctest() {
47-
var expected = ""\"
48-
Hello World***
49-
""\";
50-
Approvals.verify("", Options.inline(expected));
51-
}
47+
@Test
48+
public void testyMctest() {
49+
var expected = ""\"
50+
Hello World***
51+
""\";
52+
Approvals.verify("", Options.inline(expected));
53+
}
5254
""", """
53-
@Test
54-
public void testyMctest()
55-
{
56-
Approvals.verify("", Options.inline(expected));
57-
}
55+
\t@Test
56+
\tpublic void testyMctest()
57+
\t{
58+
\t\tApprovals.verify("", Options.inline(expected));
59+
\t}
5860
""", """
59-
@Test
60-
public void testyMctest()
61-
{
62-
var expected = ""\"
63-
Hello World***
64-
""\";
65-
Approvals.verify("", Options.inline(expected));
66-
}
61+
@Test
62+
public void testyMctest()
63+
{
64+
var expected = ""\"
65+
Hello World***
66+
""\";
67+
Approvals.verify("", Options.inline(expected));
68+
}
6769
""", """
68-
@Test
69-
public void testyMctest(int foo) {
70-
var expected = ""\"
71-
Hello World***
72-
""\";
73-
Approvals.verify("", Options.inline(expected));
74-
}
70+
@Test
71+
public void testyMctest(int foo) {
72+
var expected = ""\"
73+
Hello World***
74+
""\";
75+
Approvals.verify("", Options.inline(expected));
76+
}
7577
""");
7678
Approvals.verifyAll("Substitution", inputs, i -> "******\n" + i + "\nBecomes:\n"
77-
+ InlineJavaReporter.createNewReceivedFileText(i, "1\n2", "testyMctest"));
79+
+ InlineJavaReporter.createNewReceivedFileText(i, "1\n2", "testyMctest"));
7880
}
7981
@Test
8082
@UseReporter(QuietReporter.class)

approvaltests-tests/src/test/java/org/approvaltests/InlineApprovalsTest.testCreateReceivedFileText.approved.txt

Lines changed: 57 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -2,79 +2,79 @@ Substitution
22

33

44
******
5-
@Test
6-
public void testyMctest() {
7-
var expected = """
8-
Hello World***
9-
""";
10-
Approvals.verify("", Options.inline(expected));
11-
}
5+
@Test
6+
public void testyMctest() {
7+
var expected = """
8+
Hello World***
9+
""";
10+
Approvals.verify("", Options.inline(expected));
11+
}
1212

1313
Becomes:
14-
@Test
15-
public void testyMctest() {
16-
var expected = """
17-
1
18-
2
19-
""";
20-
Approvals.verify("", Options.inline(expected));
21-
}
14+
@Test
15+
public void testyMctest() {
16+
var expected = """
17+
1
18+
2
19+
""";
20+
Approvals.verify("", Options.inline(expected));
21+
}
2222

2323
******
24-
@Test
25-
public void testyMctest()
26-
{
27-
Approvals.verify("", Options.inline(expected));
28-
}
24+
@Test
25+
public void testyMctest()
26+
{
27+
Approvals.verify("", Options.inline(expected));
28+
}
2929

3030
Becomes:
31-
@Test
32-
public void testyMctest()
33-
{
31+
@Test
32+
public void testyMctest()
33+
{
3434
var expected = """
3535
1
3636
2
3737
""";
38-
Approvals.verify("", Options.inline(expected));
39-
}
38+
Approvals.verify("", Options.inline(expected));
39+
}
4040

4141
******
42-
@Test
43-
public void testyMctest()
44-
{
45-
var expected = """
46-
Hello World***
47-
""";
48-
Approvals.verify("", Options.inline(expected));
49-
}
42+
@Test
43+
public void testyMctest()
44+
{
45+
var expected = """
46+
Hello World***
47+
""";
48+
Approvals.verify("", Options.inline(expected));
49+
}
5050

5151
Becomes:
52-
@Test
53-
public void testyMctest()
54-
{
55-
var expected = """
56-
1
57-
2
58-
""";
59-
Approvals.verify("", Options.inline(expected));
60-
}
52+
@Test
53+
public void testyMctest()
54+
{
55+
var expected = """
56+
1
57+
2
58+
""";
59+
Approvals.verify("", Options.inline(expected));
60+
}
6161

6262
******
63-
@Test
64-
public void testyMctest(int foo) {
65-
var expected = """
66-
Hello World***
67-
""";
68-
Approvals.verify("", Options.inline(expected));
69-
}
63+
@Test
64+
public void testyMctest(int foo) {
65+
var expected = """
66+
Hello World***
67+
""";
68+
Approvals.verify("", Options.inline(expected));
69+
}
7070

7171
Becomes:
72-
@Test
73-
public void testyMctest(int foo) {
74-
var expected = """
75-
1
76-
2
77-
""";
78-
Approvals.verify("", Options.inline(expected));
79-
}
72+
@Test
73+
public void testyMctest(int foo) {
74+
var expected = """
75+
1
76+
2
77+
""";
78+
Approvals.verify("", Options.inline(expected));
79+
}
8080

approvaltests/src/main/java/org/approvaltests/inline/InlineJavaReporter.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import org.approvaltests.namer.StackTraceNamer;
66

77
import java.io.File;
8+
import java.util.regex.Matcher;
9+
import java.util.regex.Pattern;
810

911
public class InlineJavaReporter implements ApprovalFailureReporter
1012
{
@@ -39,9 +41,12 @@ public String createReceived(String actual)
3941
}
4042
public static String createNewReceivedFileText(String text, String actual, String methodName)
4143
{
42-
String tab = "\t";
4344
text = text.replaceAll("\r\n", "\n");
4445
int start = text.indexOf("void " + methodName + "(");
46+
int startOfLine = text.substring(0, start).lastIndexOf("\n") + 1;
47+
String line = text.substring(startOfLine, start);
48+
String tab = extractLeadingWhitespace(line);
49+
4550
start = text.indexOf("{", start);
4651
int next = text.indexOf("\n", start);
4752
int end = text.indexOf("}", next);
@@ -72,4 +77,12 @@ public static String indent(String actual, String tab)
7277
}
7378
return output;
7479
}
80+
private static String extractLeadingWhitespace(String text)
81+
{
82+
Pattern pattern = Pattern.compile("^\\s+");
83+
Matcher matcher = pattern.matcher(text);
84+
if (matcher.find())
85+
{ return matcher.group(); }
86+
return "\t";
87+
}
7588
}

0 commit comments

Comments
 (0)