| package com.fasterxml.jackson.databind.format; |
| |
| import com.fasterxml.jackson.annotation.JsonFormat; |
| import com.fasterxml.jackson.annotation.JsonPropertyOrder; |
| import com.fasterxml.jackson.databind.BaseMapTest; |
| import com.fasterxml.jackson.databind.ObjectMapper; |
| |
| // [databind#1480] |
| public class BooleanFormatTest extends BaseMapTest |
| { |
| @JsonPropertyOrder({ "b1", "b2", "b3" }) |
| static class BeanWithBoolean |
| { |
| @JsonFormat(shape=JsonFormat.Shape.NUMBER) |
| public boolean b1; |
| |
| @JsonFormat(shape=JsonFormat.Shape.NUMBER) |
| public Boolean b2; |
| |
| public boolean b3; |
| |
| public BeanWithBoolean() { } |
| public BeanWithBoolean(boolean b1, Boolean b2, boolean b3) { |
| this.b1 = b1; |
| this.b2 = b2; |
| this.b3 = b3; |
| } |
| } |
| |
| /** |
| * Simple wrapper around boolean types, usually to test value |
| * conversions or wrapping |
| */ |
| protected static class BooleanWrapper { |
| public Boolean b; |
| |
| public BooleanWrapper() { } |
| public BooleanWrapper(Boolean value) { b = value; } |
| } |
| |
| static class AltBoolean extends BooleanWrapper |
| { |
| public AltBoolean() { } |
| public AltBoolean(Boolean b) { super(b); } |
| } |
| |
| /* |
| /********************************************************** |
| /* Test methods |
| /********************************************************** |
| */ |
| |
| private final static ObjectMapper MAPPER = newJsonMapper(); |
| |
| public void testShapeViaDefaults() throws Exception |
| { |
| assertEquals(aposToQuotes("{'b':true}"), |
| MAPPER.writeValueAsString(new BooleanWrapper(true))); |
| ObjectMapper m = newJsonMapper(); |
| m.configOverride(Boolean.class) |
| .setFormat(JsonFormat.Value.forShape(JsonFormat.Shape.NUMBER)); |
| assertEquals(aposToQuotes("{'b':1}"), |
| m.writeValueAsString(new BooleanWrapper(true))); |
| } |
| |
| public void testShapeOnProperty() throws Exception |
| { |
| assertEquals(aposToQuotes("{'b1':1,'b2':0,'b3':true}"), |
| MAPPER.writeValueAsString(new BeanWithBoolean(true, false, true))); |
| } |
| } |