Allow TestCompiler DynamicClassLoader to resolve '.class' resources
Update `DynamicClassLoader` so that `findResource(...)` also considered compiled class bytecode. Closes gh-29347
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
|
||||
package org.springframework.core.test.tools;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
@@ -278,6 +279,15 @@ class TestCompilerTests {
|
||||
compiled.getInstance(PublicInterface.class, "com.example.Test").perform()).isEqualTo("Hello from subpackage"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void getResourceForCompiledBytecode() {
|
||||
SourceFile sourceFile = SourceFile.of(HELLO_WORLD);
|
||||
TestCompiler.forSystem().compile(sourceFile, compiled -> {
|
||||
InputStream stream = compiled.getClassLoader().getResourceAsStream("com/example/Hello.class");
|
||||
assertThat(stream).isNotNull();
|
||||
});
|
||||
}
|
||||
|
||||
private void assertSuppliesHelloWorld(Compiled compiled) {
|
||||
assertThat(compiled.getInstance(Supplier.class).get()).isEqualTo("Hello World!");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user