| 
25 | 25 | import org.springframework.beans.testfixture.beans.TestBean;  | 
26 | 26 | import org.springframework.core.OverridingClassLoader;  | 
27 | 27 | import org.springframework.core.io.DefaultResourceLoader;  | 
 | 28 | +import org.springframework.core.io.UrlResource;  | 
28 | 29 | 
 
  | 
29 | 30 | import static org.assertj.core.api.Assertions.assertThat;  | 
30 | 31 | import static org.assertj.core.api.Assertions.assertThatExceptionOfType;  | 
@@ -152,7 +153,7 @@ public void setPropertyTypeMismatch() {  | 
152 | 153 | 	}  | 
153 | 154 | 
 
  | 
154 | 155 | 	@Test  | 
155 |  | -	public void propertyDescriptors() {  | 
 | 156 | +	public void propertyDescriptors() throws Exception {  | 
156 | 157 | 		TestBean target = new TestBean();  | 
157 | 158 | 		target.setSpouse(new TestBean());  | 
158 | 159 | 		BeanWrapper accessor = createAccessor(target);  | 
@@ -181,11 +182,29 @@ public void propertyDescriptors() {  | 
181 | 182 | 		assertThat(accessor.isReadableProperty("class.package")).isFalse();  | 
182 | 183 | 		assertThat(accessor.isReadableProperty("class.module")).isFalse();  | 
183 | 184 | 		assertThat(accessor.isReadableProperty("class.classLoader")).isFalse();  | 
 | 185 | +		assertThat(accessor.isReadableProperty("class.name")).isTrue();  | 
 | 186 | +		assertThat(accessor.isReadableProperty("class.simpleName")).isTrue();  | 
184 | 187 | 		assertThat(accessor.isReadableProperty("classLoader")).isTrue();  | 
185 | 188 | 		assertThat(accessor.isWritableProperty("classLoader")).isTrue();  | 
186 | 189 | 		OverridingClassLoader ocl = new OverridingClassLoader(getClass().getClassLoader());  | 
187 | 190 | 		accessor.setPropertyValue("classLoader", ocl);  | 
188 | 191 | 		assertThat(accessor.getPropertyValue("classLoader")).isSameAs(ocl);  | 
 | 192 | + | 
 | 193 | +		accessor = createAccessor(new UrlResource("https://spring.io"));  | 
 | 194 | + | 
 | 195 | +		assertThat(accessor.isReadableProperty("class.package")).isFalse();  | 
 | 196 | +		assertThat(accessor.isReadableProperty("class.module")).isFalse();  | 
 | 197 | +		assertThat(accessor.isReadableProperty("class.classLoader")).isFalse();  | 
 | 198 | +		assertThat(accessor.isReadableProperty("class.name")).isTrue();  | 
 | 199 | +		assertThat(accessor.isReadableProperty("class.simpleName")).isTrue();  | 
 | 200 | +		assertThat(accessor.isReadableProperty("URL.protocol")).isTrue();  | 
 | 201 | +		assertThat(accessor.isReadableProperty("URL.host")).isTrue();  | 
 | 202 | +		assertThat(accessor.isReadableProperty("URL.port")).isTrue();  | 
 | 203 | +		assertThat(accessor.isReadableProperty("URL.file")).isTrue();  | 
 | 204 | +		assertThat(accessor.isReadableProperty("URL.content")).isFalse();  | 
 | 205 | +		assertThat(accessor.isReadableProperty("inputStream")).isFalse();  | 
 | 206 | +		assertThat(accessor.isReadableProperty("filename")).isTrue();  | 
 | 207 | +		assertThat(accessor.isReadableProperty("description")).isTrue();  | 
189 | 208 | 	}  | 
190 | 209 | 
 
  | 
191 | 210 | 	@Test  | 
 | 
0 commit comments