RecordUpdate3079FailingTest.java

package com.fasterxml.jackson.databind.tofix;

import java.util.Collections;

import org.junit.jupiter.api.Test;

import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.records.RecordUpdate3079Test;
import com.fasterxml.jackson.databind.testutil.DatabindTestUtil;
import com.fasterxml.jackson.databind.testutil.failure.JacksonTestFailureExpected;

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

// 01-Dec-2022, tatu: Alas, fails on JDK 17
// see related passing test in RecordUpdate3079Test
public class RecordUpdate3079FailingTest extends DatabindTestUtil
{
    private final ObjectMapper MAPPER = newJsonMapper();

    // [databind#3079]: Should be able to Record value directly
    @JacksonTestFailureExpected
    @Test
    public void testDirectRecordUpdate() throws Exception
    {
        RecordUpdate3079Test.IdNameRecord orig = new RecordUpdate3079Test.IdNameRecord(123, "Bob");
        RecordUpdate3079Test.IdNameRecord result = MAPPER.updateValue(orig,
                Collections.singletonMap("id", 137));
        assertNotNull(result);
        assertEquals(137, result.id());
        assertEquals("Bob", result.name());
        assertNotSame(orig, result);
    }
}