Skip to content

Commit 6527c11

Browse files
committed
- F ParseInput with 2 parameters handles an array as 2nd parameter
1 parent fc2eb99 commit 6527c11

File tree

4 files changed

+8
-3
lines changed

4 files changed

+8
-3
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public void testArrays()
4848
5,5,7,7 -> 24.0
4949
""";
5050
ParseInput.from(expected).withTypes(Integer[].class).verifyAll(this::sum);
51+
ParseInput.from(expected).withTypes(Integer.class, Integer[].class).verifyAll((i, a) -> i + sum(a));
5152
}
5253
private Double sum(Integer[] integers)
5354
{

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ public static ParseInput<String> from(String expected)
2424
{
2525
return new ParseInput<String>(expected, s -> new Tuple<>(s, s), new ParseInputOptions());
2626
}
27+
public static String getLast(Queryable<String> temp, int number)
28+
{
29+
Queryable<String> skip = temp.skip(number);
30+
return skip.size() == 1 ? skip.first() : skip.join(", ");
31+
}
2732
public ParseInput<OUT> multiline()
2833
{
2934
return new ParseInput<>(expected, transformer, new ParseInputOptions(true));

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public static <IN1, IN2> ParseInputWith2Parameters<IN1, IN2> create(String expec
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));
26-
IN2 v2 = t2.call(temp.get(1));
26+
IN2 v2 = t2.call(ParseInput.getLast(temp, 1));
2727
return new Tuple<>(v1, v2);
2828
};
2929
return new ParseInputWith2Parameters<>(expected, f, options);

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ public static <IN1, IN2, IN3> ParseInputWith3Parameters<IN1, IN2, IN3> create(St
2626
Queryable<String> temp = Queryable.as(s.split(",")).select(String::trim);
2727
IN1 v1 = t1.call(temp.get(0));
2828
IN2 v2 = t2.call(temp.get(1));
29-
Queryable<String> skip = temp.skip(2);
30-
IN3 v3 = t3.call(skip.size() == 1 ? skip.first() : skip.join(", "));
29+
IN3 v3 = t3.call(ParseInput.getLast(temp, 2));
3130
return new Tuple3<>(v1, v2, v3);
3231
};
3332
return new ParseInputWith3Parameters<>(expected, f, options);

0 commit comments

Comments
 (0)