Fix GenericApplicationContextTests on Microsoft Windows (round 2)

The previous change to the tests resulted in a failure on Windows when
using the DefaultResourceLoader by expecting an exception when no
exception is thrown.

This commit narrows the scope of the if-clause to expect an exception
only when using the FileSystemResourceLoader on Windows.

See gh-28703, gh-28746
This commit is contained in:
Sam Brannen
2022-07-03 17:59:33 +02:00
parent f732fab820
commit d1d6eb095e

View File

@@ -249,9 +249,13 @@ class GenericApplicationContextTests {
resource = context.getResource(fileLocation);
assertThat(resource).isInstanceOf(FileUrlResource.class);
if (OS.WINDOWS.isCurrentOs()) {
// On Windows we expect an error similar to the following.
// java.nio.file.InvalidPathException: Illegal char <:> at index 4: ping:foo
// If we are using a FileSystemResourceLoader on Windows, we expect an error
// similar to the following since "ping:foo" is not a valid file name in the
// Windows file system and since the PingPongProtocolResolver has not yet been
// registered.
//
// java.nio.file.InvalidPathException: Illegal char <:> at index 4: ping:foo
if (resourceLoader instanceof FileSystemResourceLoader && OS.WINDOWS.isCurrentOs()) {
assertThatExceptionOfType(InvalidPathException.class)
.isThrownBy(() -> context.getResource(pingLocation))
.withMessageContaining(pingLocation);