JsonPointerCore1361Test.java

package com.fasterxml.jackson.databind.node;

import org.junit.jupiter.api.Test;

import com.fasterxml.jackson.core.JsonPointer;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.testutil.DatabindTestUtil;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;

// For [core#1361] (not databind)
public class JsonPointerCore1361Test extends DatabindTestUtil
{
    @Test
    public void test1361() throws Exception
    {
        ObjectMapper om = newJsonMapper();
        ObjectNode jo = om.createObjectNode();
        ArrayNode nums = om.createArrayNode().add(42).add(-99);
        jo.set("num~s",nums);
        JsonPointer jp = JsonPointer.compile("/num~s/0");

        jo.remove("num~s");
        jo.set("nums~",nums);
        jp = JsonPointer.compile("/nums~");

        jo.remove("num~s");
        jo.set("nums~",nums);
        jp = JsonPointer.compile("/nums~/0");

        JsonNode elem0 = jo.at(jp);
        assertFalse(elem0.isMissingNode());
        assertEquals(42, elem0.asInt());
    }
}