@Test
public void testJoinOnIterable() {

  final Object[][] testParameters =
      new Object[][] {{Arrays.asList("Hello", "World"), "-", "Hello-World"},
          {new HashSet<String>(Arrays.asList("A", "B", "C")), ".", "A.B.C"}};
  for (final Object[] testParameter : testParameters) {
    String expected = (String) testParameter[2];
    @SuppressWarnings("unchecked")
    Iterable<String> values = (Iterable<String>) testParameter[0];
    String token = (String) testParameter[1];
    assertEquals(expected, StringUtils.join(values, token));
  }
}