JsonIgnoreProperties2803Test.java

package com.fasterxml.jackson.databind.tofix;

import org.junit.jupiter.api.Test;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.testutil.DatabindTestUtil;
import com.fasterxml.jackson.databind.testutil.failure.JacksonTestFailureExpected;

import static org.junit.jupiter.api.Assertions.assertNotNull;

class JsonIgnoreProperties2803Test extends DatabindTestUtil {
    // [databind#2803]
    static class Building2803 {
        @JsonIgnoreProperties({"something"})
        @JsonProperty
        private Room2803 lobby;
    }

    static class Museum2803 extends Building2803 {
    }

    static class Room2803 {
        public Building2803 something;
        public String id;
    }

    private final ObjectMapper MAPPER = newJsonMapper();

    // [databind#2803]
    @JacksonTestFailureExpected
    @Test
    void ignoreProps2803() throws Exception {
        final String DOC = "{\"lobby\":{\"id\":\"L1\"}}";

        // Important! Must do both calls, in this order
        Museum2803 museum = MAPPER.readValue(DOC, Museum2803.class);
        assertNotNull(museum);
//System.err.println();
//System.err.println("------------------------------");
//System.err.println();
        Building2803 building = MAPPER.readValue(DOC, Building2803.class);
        assertNotNull(building);
    }
}