RecordWithView4085Test.java
package com.fasterxml.jackson.databind.records;
import org.junit.jupiter.api.Test;
import com.fasterxml.jackson.annotation.JsonView;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.testutil.DatabindTestUtil;
import static org.junit.jupiter.api.Assertions.assertEquals;
// [databind#4085]
public class RecordWithView4085Test extends DatabindTestUtil
{
static class View4085Default { }
static class View4085Field { }
@JsonView(View4085Default.class)
public record Record4085(int total, @JsonView(View4085Field.class) int current) { }
@Test
public void testRecordWithView4085() throws Exception
{
final Record4085 input = new Record4085(1, 2);
final String EXP = a2q("{'total':1,'current':2}");
final ObjectWriter w = newJsonMapper().writer();
// by default, all properties included, without view
assertEquals(EXP, w.writeValueAsString(input));
// with non-inclusive view, nothing included:
assertEquals("{}", w.withView(Void.class).writeValueAsString(input));
// But other combinations exist
assertEquals(a2q("{'total':1}"),
w.withView(View4085Default.class).writeValueAsString(input));
assertEquals(a2q("{'current':2}"),
w.withView(View4085Field.class).writeValueAsString(input));
}
}