This commit is contained in:
Stéphane Nicoll 2024-07-03 10:04:51 +02:00
parent 99e8978a91
commit 1ea4eb147a
2 changed files with 14 additions and 10 deletions

View File

@ -27,10 +27,10 @@ import org.springframework.util.StringUtils;
import org.springframework.util.function.ThrowingConsumer;
/**
* Interface that can be used to add {@link Kind#SOURCE source},
* Repository of generated files. Can be used to add {@link Kind#SOURCE source},
* {@link Kind#RESOURCE resource}, or {@link Kind#CLASS class} files generated
* during ahead-of-time processing. Source and resource files are written using
* UTF-8 encoding.
* {@code UTF-8} encoding.
*
* @author Phillip Webb
* @author Brian Clozel
@ -236,8 +236,8 @@ public interface GeneratedFiles {
}
/**
* Provide access to a particular file and offer convenient method to save
* or override its content.
* Provide access to a particular file and offer convenient methods to retrieve,
* save, or override its content.
*
* @since 6.2
*/

View File

@ -190,6 +190,7 @@ class GeneratedFilesTests {
AtomicBoolean called = new AtomicBoolean(false);
this.generatedFiles.handleFile(Kind.RESOURCE, "META-INF/test", handler -> {
called.set(true);
assertThat(handler.getContent()).isNotNull();
String existing = readSource(handler.getContent());
handler.override(createSource(existing+"-override"));
});
@ -225,8 +226,10 @@ class GeneratedFilesTests {
static class TestGeneratedFiles implements GeneratedFiles {
@Nullable
private Kind kind;
@Nullable
private String path;
private TestFileHandler fileHandler = new TestFileHandler();
@ -247,21 +250,22 @@ class GeneratedFilesTests {
assertThat(this.kind).as("kind").isEqualTo(kind);
assertThat(this.path).as("path").isEqualTo(path);
assertThat(this.fileHandler.content).as("content").isNotNull();
return new GeneratedFileAssert(this.fileHandler);
return new GeneratedFileAssert(this.fileHandler.content, this.fileHandler.override);
}
}
private static class GeneratedFileAssert extends AbstractStringAssert<GeneratedFileAssert> {
private final TestFileHandler fileHandler;
@Nullable
private final Boolean override;
GeneratedFileAssert(TestFileHandler fileHandler) throws IOException {
super(readSource(fileHandler.content), GeneratedFileAssert.class);
this.fileHandler = fileHandler;
GeneratedFileAssert(InputStreamSource content, @Nullable Boolean override) throws IOException {
super(readSource(content), GeneratedFileAssert.class);
this.override = override;
}
public GeneratedFileAssert hasOverride(boolean expected) {
assertThat(this.fileHandler.override).isEqualTo(expected);
assertThat(this.override).isEqualTo(expected);
return this.myself;
}
}