@Test
public void testStartsWithIgnoreCase() {

    // cases with nulls
    assertFalse(startsWithIgnoreCase(null, "prefix"));
    assertFalse(startsWithIgnoreCase("all", null));
    assertFalse(startsWithIgnoreCase(null, null));
    // cases where all is too short to possibly contain the prefix.
    assertFalse(startsWithIgnoreCase("", "prefix"));
    assertFalse(startsWithIgnoreCase("prefi", "prefix"));
    // cases where it's just not the right prefix
    assertFalse(startsWithIgnoreCase("real", "fake"));
    assertFalse(startsWithIgnoreCase("real", "read"));
    // cases where it's the right prefix, even with different cases.
    assertTrue(startsWithIgnoreCase("real", "real"));
    assertTrue(startsWithIgnoreCase("really", "real"));
    assertTrue(startsWithIgnoreCase("REALly", "real"));
    assertTrue(startsWithIgnoreCase("REALly", "ReAl"));
}