Skip to content

Commit 6c45e3c

Browse files
committed
JAVA-12359 Committing Test Cases for Colon and Slash Characters
1 parent 5e19295 commit 6c45e3c

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

core-java-modules/core-java-string-operations-3/src/test/java/com/baeldung/stringfilenamevalidaiton/StringFilenameValidationUnitTest.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
public class StringFilenameValidationUnitTest {
2727

2828
private static final String CORRECT_FILENAME_PATTERN = "baeldung.txt";
29+
private static final String FILENAME_WITH_COLON = "bael:dung.txt";
30+
private static final String FILENAME_WITH_FORWARD_SLASH = "bael/dung.txt";
31+
private static final String FILENAME_WITH_BACKWARD_SLASH = "bael\\dung.txt";
2932

3033
@ParameterizedTest
3134
@MethodSource("correctAlphanumericFilenamesProvider")
@@ -92,6 +95,26 @@ public void givenFilenameStringWithInvalidWindowsCharAndIsWindows_whenValidateUs
9295
assertThat(validateStringFilenameUsingContains(filename)).isFalse();
9396
}
9497

98+
@Test
99+
@EnabledOnOs(OS.WINDOWS)
100+
public void givenFilenameStringWithInvalidColonWindowsCharAndIsWindows_thenNIO2FailsIOSucceed()
101+
throws IOException {
102+
assertThat(validateStringFilenameUsingIO(FILENAME_WITH_COLON)).isTrue();
103+
assertThatThrownBy(() -> validateStringFilenameUsingNIO2(FILENAME_WITH_COLON))
104+
.isInstanceOf(InvalidPathException.class).hasMessageContaining("Illegal char");
105+
}
106+
107+
@Test
108+
@EnabledOnOs(OS.WINDOWS)
109+
public void givenFilenameStringWithInvalidSlashWindowsCharAndIsWindows_thenIOFailsNIO2Succeed() {
110+
assertThatThrownBy(() -> validateStringFilenameUsingIO(FILENAME_WITH_FORWARD_SLASH))
111+
.isInstanceOf(IOException.class).hasMessageContaining("The system cannot find the path specified");
112+
assertThatThrownBy(() -> validateStringFilenameUsingIO(FILENAME_WITH_BACKWARD_SLASH))
113+
.isInstanceOf(IOException.class).hasMessageContaining("The system cannot find the path specified");
114+
assertThat(validateStringFilenameUsingNIO2(FILENAME_WITH_FORWARD_SLASH)).isTrue();
115+
assertThat(validateStringFilenameUsingNIO2(FILENAME_WITH_BACKWARD_SLASH)).isTrue();
116+
}
117+
95118
@ParameterizedTest
96119
@EnabledOnOs({OS.LINUX, OS.MAC})
97120
@MethodSource("filenamesWithInvalidUnixChars")

0 commit comments

Comments
 (0)