### Question:
LegacyTaglibFunctions { public static boolean contains(@Nullable final String input, @Nullable final String substring) { return indexOf(input, substring) != -1; }  static String toUpperCase(@Nullable final String input); static String toLowerCase(@Nullable final String input); static int indexOf(@Nullable String input, @Nullable String substring); static boolean contains(@Nullable final String input, @Nullable final String substring); static boolean containsIgnoreCase(@Nullable String input, @Nullable String substring); static boolean startsWith(@Nullable String input, @Nullable String substring); static boolean endsWith(@Nullable String input, @Nullable String substring); static String substring(@Nullable String input, int beginIndex, int endIndex); static String substringAfter(@Nullable String input, @Nullable String substring); static String substringBefore(@Nullable String input, @Nullable String substring); static String trim(@Nullable final String input); static String replace(
            @Nullable String input,
            @Nullable String substringBefore,
            final String substringAfter); static String[] split(
            @Nullable String input,
            @Nullable String delimiters); static int length(@Nullable final Object obj); static String join(@Nullable final String[] array, @Nullable String separator);  }### Answer:
@Test public void testContains() { assertThat(contains(null, null)).isTrue(); assertThat(contains("", null)).isTrue(); assertThat(contains("foo", null)).isTrue(); assertThat(contains(null, "")).isTrue(); assertThat(contains("foo", "")).isTrue(); assertThat(contains("", "o")).isFalse(); assertThat(contains("foo", "o")).isTrue(); assertThat(contains("FOO", "o")).isFalse(); assertThat(contains("bar", "o")).isFalse(); assertThat(containsIgnoreCase(null, null)).isTrue(); assertThat(containsIgnoreCase("", null)).isTrue(); assertThat(containsIgnoreCase("foo", null)).isTrue(); assertThat(containsIgnoreCase(null, "")).isTrue(); assertThat(containsIgnoreCase("foo", "")).isTrue(); assertThat(containsIgnoreCase("", "o")).isFalse(); assertThat(containsIgnoreCase("foo", "o")).isTrue(); assertThat(containsIgnoreCase("FOO", "o")).isTrue(); assertThat(containsIgnoreCase("foo", "F")).isTrue(); assertThat(containsIgnoreCase("bar", "o")).isFalse(); }