1 package com.fasterxml.jackson.failing; 2 3 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; 4 import com.fasterxml.jackson.annotation.PropertyAccessor; 5 import com.fasterxml.jackson.databind.*; 6 7 public class RequireSetterForGetter736Test extends BaseMapTest 8 { 9 public static class DataB { 10 private int readonly; 11 private int readwrite; 12 DataB()13 public DataB() { 14 readonly = 1; 15 readwrite = 2; 16 } 17 getReadwrite()18 public int getReadwrite() { 19 return readwrite; 20 } setReadwrite(int readwrite)21 public void setReadwrite(int readwrite) { 22 this.readwrite = readwrite; 23 } getReadonly()24 public int getReadonly() { 25 return readonly; 26 } 27 } 28 29 // for [databind#736] testNeedForSetters()30 public void testNeedForSetters() throws Exception 31 { 32 ObjectMapper mapper = jsonMapperBuilder() 33 .visibility(PropertyAccessor.ALL, Visibility.NONE) 34 .visibility(PropertyAccessor.FIELD, Visibility.NONE) 35 .visibility(PropertyAccessor.GETTER, Visibility.PUBLIC_ONLY) 36 .visibility(PropertyAccessor.SETTER, Visibility.PUBLIC_ONLY) 37 .enable(MapperFeature.REQUIRE_SETTERS_FOR_GETTERS) 38 .build(); 39 DataB dataB = new DataB(); 40 41 String json = mapper.writeValueAsString(dataB); 42 assertEquals(aposToQuotes("{'readwrite':2}"), json); 43 } 44 } 45