|
|
|
@ -171,6 +171,11 @@ public final class SourceFile extends DynamicFile implements AssertProvider<Sour |
|
|
|
JavaProjectBuilder builder = new JavaProjectBuilder(); |
|
|
|
JavaProjectBuilder builder = new JavaProjectBuilder(); |
|
|
|
try { |
|
|
|
try { |
|
|
|
JavaSource javaSource = builder.addSource(new StringReader(content)); |
|
|
|
JavaSource javaSource = builder.addSource(new StringReader(content)); |
|
|
|
|
|
|
|
if (javaSource.getClasses().isEmpty()) { |
|
|
|
|
|
|
|
// QDOX doesn't let us inspect records yet, but we only need the
|
|
|
|
|
|
|
|
// class name so lets make the content look like a class
|
|
|
|
|
|
|
|
javaSource = builder.addSource(new StringReader(makeRecordsLookLikeClasses(content))); |
|
|
|
|
|
|
|
} |
|
|
|
Assert.state(javaSource.getClasses().size() == 1, "Source must define a single class"); |
|
|
|
Assert.state(javaSource.getClasses().size() == 1, "Source must define a single class"); |
|
|
|
JavaClass javaClass = javaSource.getClasses().get(0); |
|
|
|
JavaClass javaClass = javaSource.getClasses().get(0); |
|
|
|
return (javaSource.getPackage() != null) |
|
|
|
return (javaSource.getPackage() != null) |
|
|
|
@ -183,6 +188,10 @@ public final class SourceFile extends DynamicFile implements AssertProvider<Sour |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static String makeRecordsLookLikeClasses(String content) { |
|
|
|
|
|
|
|
return content.replaceAll("record\\s(\\S+)\\(\\X+?\\)", "class $1"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* AssertJ {@code assertThat} support. |
|
|
|
* AssertJ {@code assertThat} support. |
|
|
|
* @deprecated use {@code assertThat(sourceFile)} rather than calling this |
|
|
|
* @deprecated use {@code assertThat(sourceFile)} rather than calling this |
|
|
|
|