Skip to content

Commit e5bb61c

Browse files
committed
- r future proofing multiline option
1 parent e3c1c64 commit e5bb61c

File tree

3 files changed

+35
-23
lines changed

3 files changed

+35
-23
lines changed

approvaltests/src/main/java/org/approvaltests/utils/parseinput/ParseInput.java

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,25 @@
1212
public class ParseInput<OUT>
1313
{
1414
private final String expected;
15-
private final boolean multiline;
15+
private final ParseInputOptions options;
1616
private final Function1<String, Tuple<String, OUT>> transformer;
17-
ParseInput(String expected, Function1<String, Tuple<String, OUT>> transformer, boolean multiline)
17+
ParseInput(String expected, Function1<String, Tuple<String, OUT>> transformer, ParseInputOptions options)
1818
{
1919
this.expected = expected;
2020
this.transformer = transformer;
21-
this.multiline = multiline;
21+
this.options = options;
2222
}
2323
public static ParseInput<String> from(String expected)
2424
{
25-
return new ParseInput<String>(expected, s -> new Tuple<>(s, s), false);
25+
return new ParseInput<String>(expected, s -> new Tuple<>(s, s), new ParseInputOptions());
2626
}
2727
public ParseInput<OUT> multiline()
2828
{
29-
return new ParseInput<>(expected, transformer, true);
29+
return new ParseInput<>(expected, transformer, new ParseInputOptions(true));
3030
}
3131
public Queryable<Tuple<String, OUT>> parse()
3232
{
33-
Function1<String, Boolean> f = multiline ? s -> s.contains("->") : s -> true;
33+
Function1<String, Boolean> f = options.multiline ? s -> s.contains("->") : s -> true;
3434
return Queryable.as(expected.split("\n")) //
3535
.where(f) //
3636
.select(l -> l.split("->")[0].trim()) //
@@ -66,21 +66,33 @@ public static <OUT> Function1<String, OUT> getTransformerForClass(Class<OUT> tar
6666
// ************* 1 parameter
6767
public <T1> ParseInputWith1Parameters<T1> withTypes(Class<T1> type1)
6868
{
69-
return ParseInputWith1Parameters.create(expected, type1, multiline);
69+
return ParseInputWith1Parameters.create(expected, type1, options);
7070
}
7171
public <T1> ParseInputWith1Parameters<T1> transformTo(Function1<String, T1> transformer)
7272
{
73-
return new ParseInputWith1Parameters<>(expected, transformer, multiline);
73+
return new ParseInputWith1Parameters<>(expected, transformer, options);
7474
}
7575
// ************* 2 parameters
7676
public <T1, T2> ParseInputWith2Parameters<T1, T2> withTypes(Class<T1> type1, Class<T2> type2)
7777
{
7878
return ParseInputWith2Parameters.create(expected, getTransformerForClass(type1), getTransformerForClass(type2),
79-
multiline);
79+
options);
8080
}
8181
public <T1, T2> ParseInputWith2Parameters<T1, T2> transformTo(Function1<String, T1> transformer1,
8282
Function1<String, T2> transformer2)
8383
{
84-
return ParseInputWith2Parameters.create(expected, transformer1, transformer2, multiline);
84+
return ParseInputWith2Parameters.create(expected, transformer1, transformer2, options);
85+
}
86+
public static class ParseInputOptions
87+
{
88+
public final boolean multiline;
89+
public ParseInputOptions()
90+
{
91+
this(false);
92+
}
93+
public ParseInputOptions(boolean multiline)
94+
{
95+
this.multiline = multiline;
96+
}
8597
}
8698
}

approvaltests/src/main/java/org/approvaltests/utils/parseinput/ParseInputWith1Parameters.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,22 @@
77
public class ParseInputWith1Parameters<OUT>
88
{
99
private final String expected;
10-
private final boolean multiline;
10+
private final ParseInput.ParseInputOptions options;
1111
private final Function1<String, OUT> transformer;
12-
public ParseInputWith1Parameters(String expected, Function1<String, OUT> transformer, boolean multiline)
12+
public ParseInputWith1Parameters(String expected, Function1<String, OUT> transformer, ParseInput.ParseInputOptions options)
1313
{
1414
this.expected = expected;
1515
this.transformer = transformer;
16-
this.multiline = multiline;
16+
this.options = options;
1717
}
18-
public static <OUT> ParseInputWith1Parameters<OUT> create(String expected, Class<OUT> type1, boolean multiline)
18+
public static <OUT> ParseInputWith1Parameters<OUT> create(String expected, Class<OUT> type1, ParseInput.ParseInputOptions multiline)
1919
{
2020
return new ParseInputWith1Parameters<>(expected, ParseInput.getTransformerForClass(type1), multiline);
2121
}
2222
public <OUT2> ParseInputWith1Parameters<OUT2> transformTo(Function1<OUT, OUT2> transformer1)
2323
{
2424
Function1<String, OUT2> transformer2 = (String t) -> transformer1.call(transformer.call(t));
25-
return new ParseInputWith1Parameters<>(expected, transformer2, multiline);
25+
return new ParseInputWith1Parameters<>(expected, transformer2, options);
2626
}
2727
public Queryable<OUT> getInputs()
2828
{
@@ -31,7 +31,7 @@ public Queryable<OUT> getInputs()
3131
private ParseInput<OUT> getParseInput()
3232
{
3333
Function1<String, Tuple<String, OUT>> transformer = s -> new Tuple<>(s, this.transformer.call(s));
34-
return new ParseInput<OUT>(expected, transformer, multiline);
34+
return new ParseInput<OUT>(expected, transformer, options);
3535
}
3636
public void verifyAll(Function1<OUT, Object> transform)
3737
{

approvaltests/src/main/java/org/approvaltests/utils/parseinput/ParseInputWith2Parameters.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,36 +9,36 @@ public class ParseInputWith2Parameters<IN1, IN2>
99
{
1010
private final String expected;
1111
private final Function1<String, Tuple<IN1, IN2>> transformer;
12-
private final boolean multiline;
12+
private final ParseInput.ParseInputOptions options;
1313
public ParseInputWith2Parameters(String expected, Function1<String, Tuple<IN1, IN2>> transformer,
14-
boolean multiline)
14+
ParseInput.ParseInputOptions options)
1515
{
1616
this.expected = expected;
1717
this.transformer = transformer;
18-
this.multiline = multiline;
18+
this.options = options;
1919
}
2020
public static <IN1, IN2> ParseInputWith2Parameters<IN1, IN2> create(String expected, Function1<String, IN1> t1,
21-
Function1<String, IN2> t2, boolean multiline)
21+
Function1<String, IN2> t2, ParseInput.ParseInputOptions options)
2222
{
2323
Function1<String, Tuple<IN1, IN2>> f = s -> {
2424
Queryable<String> temp = Queryable.as(s.split(",")).select(String::trim);
2525
IN1 v1 = t1.call(temp.get(0));
2626
IN2 v2 = t2.call(temp.get(1));
2727
return new Tuple<>(v1, v2);
2828
};
29-
return new ParseInputWith2Parameters<>(expected, f, multiline);
29+
return new ParseInputWith2Parameters<>(expected, f, options);
3030
}
3131
private ParseInput<Tuple<IN1, IN2>> getParseInput()
3232
{
33-
return new ParseInput<>(expected, s -> new Tuple<>(s, transformer.call(s)), multiline);
33+
return new ParseInput<>(expected, s -> new Tuple<>(s, transformer.call(s)), options);
3434
}
3535
public <OUT> ParseInputWith1Parameters<OUT> transformTo(Function2<IN1, IN2, OUT> transform)
3636
{
3737
Function1<String, OUT> f1 = (t) -> {
3838
Tuple<IN1, IN2> transformed = transformer.call(t);
3939
return transform.call(transformed.getFirst(), transformed.getSecond());
4040
};
41-
return new ParseInputWith1Parameters<>(expected, f1, multiline);
41+
return new ParseInputWith1Parameters<>(expected, f1, options);
4242
}
4343
public void verifyAll(Function2<IN1, IN2, Object> transform)
4444
{

0 commit comments

Comments
 (0)