private void doTestBindCaseInsensitiveEnums(VanillaTarget target) throws Exception {
    BindingResult result = bind(target, "bingo: THIS");
    assertThat(result.getErrorCount(), equalTo(0));
    assertThat(target.getBingo(), equalTo(Bingo.THIS));

    result = bind(target, "bingo: oR");
    assertThat(result.getErrorCount(), equalTo(0));
    assertThat(target.getBingo(), equalTo(Bingo.or));

    result = bind(target, "bingo: that");
    assertThat(result.getErrorCount(), equalTo(0));
    assertThat(target.getBingo(), equalTo(Bingo.THAT));

    result = bind(target, "bingo: the-other");
    assertThat(result.getErrorCount(), equalTo(0));
    assertThat(target.getBingo(), equalTo(Bingo.THE_OTHER));

    result = bind(target, "bingo: the_other");
    assertThat(result.getErrorCount(), equalTo(0));
    assertThat(target.getBingo(), equalTo(Bingo.THE_OTHER));

    result = bind(target, "bingo: The_Other");
    assertThat(result.getErrorCount(), equalTo(0));
    assertThat(target.getBingo(), equalTo(Bingo.THE_OTHER));
  }