diff --git a/.gitignore b/.gitignore index acec74a..c132588 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,4 @@ local.properties # Uncomment this line if you wish to ignore the project description file. # Typically, this file would be tracked if it contains build/dependency configurations: #.project +.DS_Store diff --git a/src/edu/mills/cs180a/StringUtilitiesTester.java b/src/edu/mills/cs180a/StringUtilitiesTester.java index dfeabf9..c52dfe3 100644 --- a/src/edu/mills/cs180a/StringUtilitiesTester.java +++ b/src/edu/mills/cs180a/StringUtilitiesTester.java @@ -1,10 +1,15 @@ package edu.mills.cs180a; +import static org.junit.Assert.assertFalse; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; class StringUtilitiesTester { + + @Test void isSubstringThrowsExceptionForNullArg() { assertThrows(NullPointerException.class, () -> StringUtilities.isSubstring(null, "foo")); @@ -17,9 +22,27 @@ void isSubstringReturnsTrueForEmptySubstring() { assertTrue(StringUtilities.isSubstring("", "foo")); } - @Test - void isSubstringReturnsTrueForLengthOneSubstring() { - assertTrue(StringUtilities.isSubstring("A", "ABC")); - // TODO: write rest + @ParameterizedTest + @CsvSource(value = {"A:ABC","B:ABC","C:ABC"}, delimiter = ':') + void isSubstringReturnsTrueForLengthOneSubstring(String substring, String text) { + assertTrue(StringUtilities.isSubstring(substring, text)); + } + + @ParameterizedTest + @CsvSource(value = {"D:ABC","B:ABC","A:ABC", "E:ABC"}, delimiter = ':') + void isSubstringReturnsFalseForLengthOneSubstring(String substring, String text) { + assertFalse(StringUtilities.isSubstring(substring, text)); + } + + @ParameterizedTest + @CsvSource(value = {"AB:ABC","BC:ABC","CD:ABCD"}, delimiter = ':') + void isSubstringReturnsTrueForLengthTwoSubstring(String substring, String text) { + assertTrue(StringUtilities.isSubstring(substring, text)); + } + + @ParameterizedTest + @CsvSource(value = {"DE:ABC", "EF:ABCDE"}, delimiter = ':') + void isSubstringReturnsFalseForLengthTwoSubstring(String substring, String text) { + assertFalse(StringUtilities.isSubstring(substring, text)); } }