### Question:
LegacyTaglibFunctions { public static String join(@Nullable final String[] array, @Nullable String separator) { if (array == null) { return ""; } if (separator == null) { separator = ""; } final StringBuilder buf = new StringBuilder(); for (int i = 0; i < array.length; i++) { buf.append(array[i]); if (i < array.length - 1) { buf.append(separator); } } return buf.toString(); }  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 testJoin() { assertThat(join(null, null)).isEqualTo(""); assertThat(join(new String[0], null)).isEqualTo(""); assertThat(join(new String[]{""}, null)).isEqualTo(""); assertThat(join(new String[]{"foo"}, null)).isEqualTo("foo"); assertThat(join(new String[]{"foo", "bar"}, null)).isEqualTo("foobar"); assertThat(join(new String[]{"foo", "bar"}, "")).isEqualTo("foobar"); assertThat(join(new String[]{"foo", "bar"}, "x")).isEqualTo("fooxbar"); }