@@ -0,0 +1,1667 @@
+package com.fasterxml.jackson.failing;%0A%0Aimport com.fasterxml.jackson.annotation.JsonSubTypes;%0Aimport com.fasterxml.jackson.annotation.JsonTypeInfo;%0Aimport com.fasterxml.jackson.databind.BaseMapTest;%0Aimport com.fasterxml.jackson.databind.MapperFeature;%0Aimport com.fasterxml.jackson.databind.ObjectMapper;%0Aimport java.io.IOException;%0A%0Apublic class JsonTypeInfoCaseInsensitive1983Test extends BaseMapTest %7B%0A%0A    @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXTERNAL_PROPERTY, property = %22operation%22)%0A    @JsonSubTypes(%7B%0A            @JsonSubTypes.Type(value = Equal.class, name = %22eq%22),%0A            @JsonSubTypes.Type(value = NotEqual.class, name = %22noteq%22),%0A    %7D)%0A    static abstract class Filter %7B%0A    %7D%0A%0A    static class Equal extends Filter %7B%0A    %7D%0A%0A    static class NotEqual extends Filter %7B%0A    %7D%0A%0A    public void testReadMixedCaseSubclass() throws IOException %7B%0A//        There is also %22ACCEPT_CASE_INSENSITIVE_VALUES%22 feature. Is it more suitable here, or I should leave it as is?%0A        ObjectMapper mapper = objectMapper().enable(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES);%0A        String serialised = %22%7B%5C%22operation%5C%22:%5C%22NoTeQ%5C%22%7D%22;%0A%0A        Filter result = mapper.readValue(serialised, Filter.class);%0A%0A        assertEquals(NotEqual.class, result.getClass());%0A    %7D%0A%0A    public void testReadMixedCasePropertyName() throws IOException %7B%0A        ObjectMapper mapper = objectMapper().enable(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES);%0A        String serialised = %22%7B%5C%22oPeRaTioN%5C%22:%5C%22noteq%5C%22%7D%22;%0A%0A        Filter result = mapper.readValue(serialised, Filter.class);%0A%0A        assertEquals(NotEqual.class, result.getClass());%0A    %7D%0A%7D%0A

Add failing test for #1983