Skip to content

Commit ffca656

Browse files
authored
Merge pull request #238 from maio/maio/support-kotlin-dynamic-tests
Add support for dynamic tests written in Kotlin
2 parents 1041c16 + 531d84d commit ffca656

File tree

3 files changed

+12
-5
lines changed

3 files changed

+12
-5
lines changed

approvaltests-tests/src/test/java/org/approvaltests/namer/AttributeStackSelectorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class AttributeStackSelectorTest
1313
@Test
1414
void unrollLambda()
1515
{
16-
String[] methodNames = {"doStuff", "lambda$handleCallback$0"};
16+
String[] methodNames = {"doStuff", "lambda$handleCallback$0", "test_in_kotlin$lambda-1$lambda-0"};
1717
Approvals.verifyAll("unroll lambda", methodNames,
1818
m -> String.format("%s -> %s", m, TestUtils.unrollLambda(m)));
1919
}

approvaltests-tests/src/test/java/org/approvaltests/namer/AttributeStackSelectorTest.unrollLambda.approved.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ unroll lambda
33

44
doStuff -> doStuff
55
lambda$handleCallback$0 -> handleCallback
6+
test_in_kotlin$lambda-1$lambda-0 -> test_in_kotlin

approvaltests-util/src/main/java/com/spun/util/tests/TestUtils.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -221,12 +221,18 @@ private static String handleInnerClasses(String className)
221221
{
222222
return className.replaceAll("\\$", ".");
223223
}
224+
224225
public static String unrollLambda(String methodName)
225226
{
226-
Pattern p = Pattern.compile("lambda\\$(.*)\\$\\d+");
227-
Matcher m = p.matcher(methodName);
228-
if (m.matches())
229-
{ return m.group(1); }
227+
Matcher javaMatcher = unrollJavaLambdaPattern.matcher(methodName);
228+
if (javaMatcher.matches())
229+
{ return javaMatcher.group(1); }
230+
231+
Matcher kotlinMatcher = unrollKotlinLambdaPattern.matcher(methodName);
232+
if (kotlinMatcher.matches())
233+
{ return kotlinMatcher.group(1); }
230234
return methodName;
231235
}
236+
private static final Pattern unrollJavaLambdaPattern = Pattern.compile("lambda\\$(.*)\\$\\d+");
237+
private static final Pattern unrollKotlinLambdaPattern = Pattern.compile("(.*?)(\\$lambda-\\d+)+");
232238
}

0 commit comments

Comments
 (0)