Skip to content

Commit 9fe24fe

Browse files
committed
Fix windows build
This commit makes sure that files that are generated in a temporary directory are closed once the related test completes.
1 parent a896fd0 commit 9fe24fe

File tree

2 files changed

+20
-44
lines changed

2 files changed

+20
-44
lines changed

spring-boot-project/spring-boot-tools/spring-boot-autoconfigure-processor/src/test/java/org/springframework/boot/autoconfigureprocessor/AutoConfigurationImportsAnnotationProcessorTests.java

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,8 @@
1616

1717
package org.springframework.boot.autoconfigureprocessor;
1818

19-
import java.io.BufferedReader;
2019
import java.io.File;
21-
import java.io.FileReader;
2220
import java.io.IOException;
23-
import java.util.List;
24-
import java.util.stream.Collectors;
2521

2622
import org.junit.jupiter.api.BeforeEach;
2723
import org.junit.jupiter.api.Test;
@@ -30,11 +26,13 @@
3026
import org.springframework.boot.testsupport.compiler.TestCompiler;
3127

3228
import static org.assertj.core.api.Assertions.assertThat;
29+
import static org.assertj.core.api.Assertions.linesOf;
3330

3431
/**
3532
* Tests for {@link AutoConfigurationImportsAnnotationProcessor}.
3633
*
3734
* @author Scott Frederick
35+
* @author Stephane Nicoll
3836
*/
3937
class AutoConfigurationImportsAnnotationProcessorTests {
4038

@@ -49,34 +47,24 @@ void createCompiler() throws IOException {
4947
}
5048

5149
@Test
52-
void annotatedClasses() throws Exception {
53-
List<String> classes = compile(TestAutoConfigurationOnlyConfiguration.class,
50+
void annotatedClasses() {
51+
File generatedFile = generateAnnotatedClasses(TestAutoConfigurationOnlyConfiguration.class,
5452
TestAutoConfigurationConfiguration.class);
55-
assertThat(classes).hasSize(2);
56-
assertThat(classes).containsExactly(
53+
assertThat(generatedFile).exists().isFile();
54+
assertThat(linesOf(generatedFile)).containsExactly(
5755
"org.springframework.boot.autoconfigureprocessor.TestAutoConfigurationConfiguration",
5856
"org.springframework.boot.autoconfigureprocessor.TestAutoConfigurationOnlyConfiguration");
5957
}
6058

6159
@Test
62-
void notAnnotatedClasses() throws Exception {
63-
List<String> classes = compile(TestAutoConfigurationImportsAnnotationProcessor.class);
64-
assertThat(classes).isNull();
60+
void notAnnotatedClasses() {
61+
assertThat(generateAnnotatedClasses(TestAutoConfigurationImportsAnnotationProcessor.class)).doesNotExist();
6562
}
6663

67-
private List<String> compile(Class<?>... types) throws IOException {
64+
private File generateAnnotatedClasses(Class<?>... types) {
6865
TestAutoConfigurationImportsAnnotationProcessor processor = new TestAutoConfigurationImportsAnnotationProcessor();
6966
this.compiler.getTask(types).call(processor);
70-
return getWrittenImports(processor.getImportsFilePath());
71-
}
72-
73-
private List<String> getWrittenImports(String importsFilePath) throws IOException {
74-
File file = new File(this.tempDir, importsFilePath);
75-
if (!file.exists()) {
76-
return null;
77-
}
78-
BufferedReader reader = new BufferedReader(new FileReader(file));
79-
return reader.lines().collect(Collectors.toList());
67+
return new File(this.tempDir, processor.getImportsFilePath());
8068
}
8169

8270
}

spring-boot-project/spring-boot-tools/spring-boot-autoconfigure-processor/src/test/java/org/springframework/boot/autoconfigureprocessor/ManagementContextConfigurationImportsAnnotationProcessorTests.java

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,8 @@
1616

1717
package org.springframework.boot.autoconfigureprocessor;
1818

19-
import java.io.BufferedReader;
2019
import java.io.File;
21-
import java.io.FileReader;
2220
import java.io.IOException;
23-
import java.util.List;
24-
import java.util.stream.Collectors;
2521

2622
import org.junit.jupiter.api.BeforeEach;
2723
import org.junit.jupiter.api.Test;
@@ -30,11 +26,13 @@
3026
import org.springframework.boot.testsupport.compiler.TestCompiler;
3127

3228
import static org.assertj.core.api.Assertions.assertThat;
29+
import static org.assertj.core.api.Assertions.linesOf;
3330

3431
/**
3532
* Tests for {@link ManagementContextConfigurationImportsAnnotationProcessor}.
3633
*
3734
* @author Scott Frederick
35+
* @author Stephane Nicoll
3836
*/
3937
class ManagementContextConfigurationImportsAnnotationProcessorTests {
4038

@@ -49,34 +47,24 @@ void createCompiler() throws IOException {
4947
}
5048

5149
@Test
52-
void annotatedClasses() throws Exception {
53-
List<String> classes = compile(TestManagementContextConfigurationTwo.class,
50+
void annotatedClasses() {
51+
File generatedFile = generateAnnotatedClasses(TestManagementContextConfigurationTwo.class,
5452
TestManagementContextConfigurationOne.class);
55-
assertThat(classes).hasSize(2);
56-
assertThat(classes).containsExactly(
53+
assertThat(generatedFile).exists().isFile();
54+
assertThat(linesOf(generatedFile)).containsExactly(
5755
"org.springframework.boot.autoconfigureprocessor.TestManagementContextConfigurationOne",
5856
"org.springframework.boot.autoconfigureprocessor.TestManagementContextConfigurationTwo");
5957
}
6058

6159
@Test
62-
void notAnnotatedClasses() throws Exception {
63-
List<String> classes = compile(TestAutoConfigurationConfiguration.class);
64-
assertThat(classes).isNull();
60+
void notAnnotatedClasses() {
61+
assertThat(generateAnnotatedClasses(TestAutoConfigurationImportsAnnotationProcessor.class)).doesNotExist();
6562
}
6663

67-
private List<String> compile(Class<?>... types) throws IOException {
64+
private File generateAnnotatedClasses(Class<?>... types) {
6865
TestManagementContextConfigurationImportsAnnotationProcessor processor = new TestManagementContextConfigurationImportsAnnotationProcessor();
6966
this.compiler.getTask(types).call(processor);
70-
return getWrittenImports(processor.getImportsFilePath());
71-
}
72-
73-
private List<String> getWrittenImports(String importsFilePath) throws IOException {
74-
File file = new File(this.tempDir, importsFilePath);
75-
if (!file.exists()) {
76-
return null;
77-
}
78-
BufferedReader reader = new BufferedReader(new FileReader(file));
79-
return reader.lines().collect(Collectors.toList());
67+
return new File(this.tempDir, processor.getImportsFilePath());
8068
}
8169

8270
}

0 commit comments

Comments
 (0)