@Test
  void caseInsensitiveCopyOfMap() {
    // Arrange
    Map<String, Collection<String>> sourceMap = new HashMap<>();

    sourceMap.put("First", Arrays.asList("abc", "qwerty", "xyz"));
    sourceMap.put("camelCase", Collections.singleton("123"));
    // Act
    Map<String, Collection<String>> actualMap = caseInsensitiveCopyOf(sourceMap);
    // Assert result
    assertThat(actualMap)
        .hasEntrySatisfying(
            "First",
            value -> {
              assertThat(value).contains("xyz", "abc", "qwerty");
            })
        .hasEntrySatisfying(
            "first",
            value -> {
              assertThat(value).contains("xyz", "abc", "qwerty");
            })
        .hasEntrySatisfying(
            "CAMELCASE",
            value -> {
              assertThat(value).contains("123");
            })
        .hasEntrySatisfying(
            "camelcase",
            value -> {
              assertThat(value).contains("123");
            });
  }
Ex. your {@code Foo} object would be null, but so would things like Number.
core/src/test/java/feign/UtilTest.java