3737 * @author Phillip Webb
3838 * @author Andy Wilkinson
3939 * @author HaiTao Zhang
40+ * @author Madhura Bhave
4041 */
4142class DevToolsHomePropertiesPostProcessorTests {
4243
44+ private String configDir ;
45+
4346 private File home ;
4447
4548 @ BeforeEach
46- void setup (@ TempDir File tempDir ) throws IOException {
49+ void setup (@ TempDir File tempDir ) {
4750 this .home = tempDir ;
51+ this .configDir = this .home + "/.config/spring-boot/" ;
52+ new File (this .configDir ).mkdirs ();
4853 }
4954
5055 @ Test
5156 void loadsPropertiesFromHomeFolderUsingProperties () throws Exception {
5257 Properties properties = new Properties ();
5358 properties .put ("abc" , "def" );
54- OutputStream out = new FileOutputStream (new File (this .home , ".spring-boot-devtools.properties" ));
55- properties .store (out , null );
56- out .close ();
57- ConfigurableEnvironment environment = new MockEnvironment ();
58- MockDevToolHomePropertiesPostProcessor postProcessor = new MockDevToolHomePropertiesPostProcessor ();
59- runPostProcessor (() -> postProcessor .postProcessEnvironment (environment , null ));
60- assertThat (environment .getProperty ("abc" )).isEqualTo ("def" );
61- }
62-
63- @ Test
64- void loadsPropertiesFromHomeFolderUsingYml () throws Exception {
65- Properties properties = new Properties ();
66- properties .put ("abc" , "def" );
67- OutputStream out = new FileOutputStream (new File (this .home , ".spring-boot-devtools.yml" ));
68- properties .store (out , null );
69- out .close ();
70- ConfigurableEnvironment environment = new MockEnvironment ();
71- MockDevToolHomePropertiesPostProcessor postProcessor = new MockDevToolHomePropertiesPostProcessor ();
72- runPostProcessor (() -> postProcessor .postProcessEnvironment (environment , null ));
73- assertThat (environment .getProperty ("abc" )).isEqualTo ("def" );
74- }
75-
76- @ Test
77- void loadsPropertiesFromHomeFolderUsingYaml () throws Exception {
78- Properties properties = new Properties ();
79- properties .put ("abc" , "def" );
80- OutputStream out = new FileOutputStream (new File (this .home , ".spring-boot-devtools.yaml" ));
81- properties .store (out , null );
82- out .close ();
83- ConfigurableEnvironment environment = new MockEnvironment ();
84- MockDevToolHomePropertiesPostProcessor postProcessor = new MockDevToolHomePropertiesPostProcessor ();
85- runPostProcessor (() -> postProcessor .postProcessEnvironment (environment , null ));
59+ writeFile (properties , ".spring-boot-devtools.properties" );
60+ ConfigurableEnvironment environment = getPostProcessedEnvironment ();
8661 assertThat (environment .getProperty ("abc" )).isEqualTo ("def" );
8762 }
8863
8964 @ Test
9065 void loadsPropertiesFromConfigFolderUsingProperties () throws Exception {
9166 Properties properties = new Properties ();
92- new File (this .home + "/.config/spring-boot" ).mkdirs ();
9367 properties .put ("abc" , "def" );
94- OutputStream out = new FileOutputStream (
95- new File (this .home + "/.config/spring-boot" , ".spring-boot-devtools.properties" ));
68+ OutputStream out = new FileOutputStream (new File (this .configDir , ".spring-boot-devtools.properties" ));
9669 properties .store (out , null );
9770 out .close ();
98- ConfigurableEnvironment environment = new MockEnvironment ();
99- MockDevToolHomePropertiesPostProcessor postProcessor = new MockDevToolHomePropertiesPostProcessor ();
100- runPostProcessor (() -> postProcessor .postProcessEnvironment (environment , null ));
71+ ConfigurableEnvironment environment = getPostProcessedEnvironment ();
10172 assertThat (environment .getProperty ("abc" )).isEqualTo ("def" );
10273 }
10374
10475 @ Test
10576 void loadsPropertiesFromConfigFolderUsingYml () throws Exception {
10677 Properties properties = new Properties ();
107- new File (this .home + "/.config/spring-boot" ).mkdirs ();
10878 properties .put ("abc" , "def" );
109- OutputStream out = new FileOutputStream (
110- new File (this .home + "/.config/spring-boot" , ".spring-boot-devtools.yml" ));
79+ OutputStream out = new FileOutputStream (new File (this .configDir , ".spring-boot-devtools.yml" ));
11180 properties .store (out , null );
11281 out .close ();
113- ConfigurableEnvironment environment = new MockEnvironment ();
114- MockDevToolHomePropertiesPostProcessor postProcessor = new MockDevToolHomePropertiesPostProcessor ();
115- runPostProcessor (() -> postProcessor .postProcessEnvironment (environment , null ));
82+ ConfigurableEnvironment environment = getPostProcessedEnvironment ();
11683 assertThat (environment .getProperty ("abc" )).isEqualTo ("def" );
11784 }
11885
11986 @ Test
12087 void loadsPropertiesFromConfigFolderUsingYaml () throws Exception {
12188 Properties properties = new Properties ();
122- new File (this .home + "/.config/spring-boot" ).mkdirs ();
12389 properties .put ("abc" , "def" );
124- OutputStream out = new FileOutputStream (
125- new File (this .home + "/.config/spring-boot" , ".spring-boot-devtools.yaml" ));
90+ OutputStream out = new FileOutputStream (new File (this .configDir , ".spring-boot-devtools.yaml" ));
12691 properties .store (out , null );
12792 out .close ();
128- ConfigurableEnvironment environment = new MockEnvironment ();
129- MockDevToolHomePropertiesPostProcessor postProcessor = new MockDevToolHomePropertiesPostProcessor ();
130- runPostProcessor (() -> postProcessor .postProcessEnvironment (environment , null ));
93+ ConfigurableEnvironment environment = getPostProcessedEnvironment ();
13194 assertThat (environment .getProperty ("abc" )).isEqualTo ("def" );
13295 }
13396
13497 @ Test
13598 void loadFromConfigFolderWithPropertiesTakingPrecedence () throws Exception {
13699 Properties properties = new Properties ();
137100 properties .put ("abc" , "def" );
138- new File ( this . home + "/.config/spring-boot" ). mkdirs ( );
101+ properties . put ( "bar" , "baz" );
139102 OutputStream out = new FileOutputStream (
140103 new File (this .home + "/.config/spring-boot/" , ".spring-boot-devtools.yaml" ));
141104 properties .store (out , null );
@@ -146,57 +109,62 @@ void loadFromConfigFolderWithPropertiesTakingPrecedence() throws Exception {
146109 new File (this .home + "/.config/spring-boot/" , ".spring-boot-devtools.properties" ));
147110 properties2 .store (out2 , null );
148111 out2 .close ();
149- ConfigurableEnvironment environment = new MockEnvironment ();
150- MockDevToolHomePropertiesPostProcessor postProcessor = new MockDevToolHomePropertiesPostProcessor ();
151- runPostProcessor (() -> postProcessor .postProcessEnvironment (environment , null ));
112+ ConfigurableEnvironment environment = getPostProcessedEnvironment ();
152113 assertThat (environment .getProperty ("abc" )).isEqualTo ("jkl" );
114+ assertThat (environment .getProperty ("bar" )).isEqualTo ("baz" );
153115 }
154116
155117 @ Test
156- void loadFromHomeFolderWithPropertiesTakingPrecedence () throws Exception {
118+ void loadFromConfigFolderTakesPrecedenceOverHomeFolder () throws Exception {
157119 Properties properties = new Properties ();
158120 properties .put ("abc" , "def" );
159- new File (this .home + "/.config/spring-boot" ).mkdirs ();
160- OutputStream out = new FileOutputStream (new File (this .home , ".spring-boot-devtools.yaml" ));
161- properties .store (out , null );
162- out .close ();
121+ properties .put ("bar" , "baz" );
122+ writeFile (properties , ".spring-boot-devtools.properties" );
163123 Properties properties2 = new Properties ();
164124 properties2 .put ("abc" , "jkl" );
165- OutputStream out2 = new FileOutputStream (new File (this .home , ".spring-boot-devtools.properties" ));
125+ OutputStream out2 = new FileOutputStream (
126+ new File (this .home + "/.config/spring-boot/" , ".spring-boot-devtools.properties" ));
166127 properties2 .store (out2 , null );
167128 out2 .close ();
168- ConfigurableEnvironment environment = new MockEnvironment ();
169- MockDevToolHomePropertiesPostProcessor postProcessor = new MockDevToolHomePropertiesPostProcessor ();
170- runPostProcessor (() -> postProcessor .postProcessEnvironment (environment , null ));
129+ ConfigurableEnvironment environment = getPostProcessedEnvironment ();
171130 assertThat (environment .getProperty ("abc" )).isEqualTo ("jkl" );
131+ assertThat (environment .getProperty ("bar" )).isEqualTo (null );
172132 }
173133
174134 @ Test
175- void loadFromConfigFolderTakesPrecedenceOverHomeFolder () throws Exception {
135+ void loadFromConfigFolderWithYamlTakesPrecedenceOverHomeFolder () throws Exception {
176136 Properties properties = new Properties ();
177137 properties .put ("abc" , "def" );
178- new File (this .home + "/.config/spring-boot" ).mkdirs ();
179- OutputStream out = new FileOutputStream (new File (this .home , ".spring-boot-devtools.properties" ));
180- properties .store (out , null );
181- out .close ();
138+ properties .put ("bar" , "baz" );
139+ writeFile (properties , ".spring-boot-devtools.properties" );
182140 Properties properties2 = new Properties ();
183141 properties2 .put ("abc" , "jkl" );
184142 OutputStream out2 = new FileOutputStream (
185- new File (this .home + "/.config/spring-boot/" , ".spring-boot-devtools.properties " ));
143+ new File (this .home + "/.config/spring-boot/" , ".spring-boot-devtools.yml " ));
186144 properties2 .store (out2 , null );
187145 out2 .close ();
188- ConfigurableEnvironment environment = new MockEnvironment ();
189- MockDevToolHomePropertiesPostProcessor postProcessor = new MockDevToolHomePropertiesPostProcessor ();
190- runPostProcessor (() -> postProcessor .postProcessEnvironment (environment , null ));
146+ ConfigurableEnvironment environment = getPostProcessedEnvironment ();
191147 assertThat (environment .getProperty ("abc" )).isEqualTo ("jkl" );
148+ assertThat (environment .getProperty ("bar" )).isEqualTo (null );
192149 }
193150
194151 @ Test
195152 void ignoresMissingHomeProperties () throws Exception {
153+ ConfigurableEnvironment environment = getPostProcessedEnvironment ();
154+ assertThat (environment .getProperty ("abc" )).isNull ();
155+ }
156+
157+ private void writeFile (Properties properties , String s ) throws IOException {
158+ OutputStream out = new FileOutputStream (new File (this .home , s ));
159+ properties .store (out , null );
160+ out .close ();
161+ }
162+
163+ private ConfigurableEnvironment getPostProcessedEnvironment () throws Exception {
196164 ConfigurableEnvironment environment = new MockEnvironment ();
197165 MockDevToolHomePropertiesPostProcessor postProcessor = new MockDevToolHomePropertiesPostProcessor ();
198166 runPostProcessor (() -> postProcessor .postProcessEnvironment (environment , null ));
199- assertThat ( environment . getProperty ( "abc" )). isNull () ;
167+ return environment ;
200168 }
201169
202170 protected void runPostProcessor (Runnable runnable ) throws Exception {
0 commit comments