Skip to content

Commit

Permalink
Merge pull request #238 from maio/maio/support-kotlin-dynamic-tests
Browse files Browse the repository at this point in the history
Add support for dynamic tests written in Kotlin
  • Loading branch information
LarsEckart committed Feb 14, 2022
2 parents 1041c16 + 531d84d commit ffca656
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 5 deletions.
Expand Up @@ -13,7 +13,7 @@ public class AttributeStackSelectorTest
@Test
void unrollLambda()
{
String[] methodNames = {"doStuff", "lambda$handleCallback$0"};
String[] methodNames = {"doStuff", "lambda$handleCallback$0", "test_in_kotlin$lambda-1$lambda-0"};
Approvals.verifyAll("unroll lambda", methodNames,
m -> String.format("%s -> %s", m, TestUtils.unrollLambda(m)));
}
Expand Down
Expand Up @@ -3,3 +3,4 @@ unroll lambda

doStuff -> doStuff
lambda$handleCallback$0 -> handleCallback
test_in_kotlin$lambda-1$lambda-0 -> test_in_kotlin
Expand Up @@ -221,12 +221,18 @@ private static String handleInnerClasses(String className)
{
return className.replaceAll("\\$", ".");
}

public static String unrollLambda(String methodName)
{
Pattern p = Pattern.compile("lambda\\$(.*)\\$\\d+");
Matcher m = p.matcher(methodName);
if (m.matches())
{ return m.group(1); }
Matcher javaMatcher = unrollJavaLambdaPattern.matcher(methodName);
if (javaMatcher.matches())
{ return javaMatcher.group(1); }

Matcher kotlinMatcher = unrollKotlinLambdaPattern.matcher(methodName);
if (kotlinMatcher.matches())
{ return kotlinMatcher.group(1); }
return methodName;
}
private static final Pattern unrollJavaLambdaPattern = Pattern.compile("lambda\\$(.*)\\$\\d+");
private static final Pattern unrollKotlinLambdaPattern = Pattern.compile("(.*?)(\\$lambda-\\d+)+");
}

0 comments on commit ffca656

Please sign in to comment.