Skip to content

Commit f3d11ca

Browse files
committed
F expose way to override Source Code directory finder
1 parent 035cc7c commit f3d11ca

File tree

1 file changed

+23
-20
lines changed

1 file changed

+23
-20
lines changed

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

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,5 @@
11
package com.spun.util.tests;
22

3-
import com.spun.util.ClassUtils;
4-
import com.spun.util.ObjectUtils;
5-
import com.spun.util.ThreadUtils;
6-
import com.spun.util.WindowUtils;
7-
import com.spun.util.images.ImageWriter;
8-
import com.spun.util.io.FileUtils;
9-
import com.spun.util.io.StackElementLevelSelector;
10-
import com.spun.util.io.StackElementSelector;
11-
import org.lambda.functions.Function1;
12-
import org.lambda.functions.Function2;
13-
143
import java.awt.image.BufferedImage;
154
import java.io.File;
165
import java.io.FileNotFoundException;
@@ -24,9 +13,25 @@
2413
import javax.swing.JFileChooser;
2514
import javax.swing.JFrame;
2615

16+
import org.lambda.functions.Function2;
17+
18+
import com.spun.util.ClassUtils;
19+
import com.spun.util.ObjectUtils;
20+
import com.spun.util.ThreadUtils;
21+
import com.spun.util.WindowUtils;
22+
import com.spun.util.images.ImageWriter;
23+
import com.spun.util.io.FileUtils;
24+
import com.spun.util.io.StackElementLevelSelector;
25+
import com.spun.util.io.StackElementSelector;
26+
2727
public class TestUtils
2828
{
29-
private static Random random;
29+
private static Random random;
30+
private static Function2<Class, String, File> getSourceDirectory = ClassUtils::getSourceDirectory;
31+
public static void registerSourceDirectoryFinder(Function2<Class, String, File> getSourceDirectory)
32+
{
33+
TestUtils.getSourceDirectory = getSourceDirectory;
34+
}
3035
public static File getFile(String startingDir)
3136
{
3237
JFrame frame = new JFrame();
@@ -189,22 +194,20 @@ private static StackTraceReflectionResult getInfo(StackTraceElement element) thr
189194
String className = fullClassName.substring(fullClassName.lastIndexOf(".") + 1);
190195
className = handleInnerClasses(className);
191196
String fileName = element.getFileName();
192-
Function2<Class, String, File> getSourceDirectory = ClassUtils::getSourceDirectory;
193197
File dir = getSourceDirectory.call(ObjectUtils.loadClass(fullClassName), fileName);
194198
String methodName = unrollLambda(element.getMethodName());
195199
return new StackTraceReflectionResult(dir, className, fullClassName, methodName);
196200
}
197-
198-
private static String handleInnerClasses(String className) {
201+
private static String handleInnerClasses(String className)
202+
{
199203
return className.replaceAll("\\$", ".");
200204
}
201-
202-
public static String unrollLambda(String methodName) {
205+
public static String unrollLambda(String methodName)
206+
{
203207
Pattern p = Pattern.compile("lambda\\$(.*)\\$\\d+");
204208
Matcher m = p.matcher(methodName);
205-
if (m.matches()) {
206-
return m.group(1);
207-
}
209+
if (m.matches())
210+
{ return m.group(1); }
208211
return methodName;
209212
}
210213
}

0 commit comments

Comments
 (0)