diff options
author | Tatu Saloranta <tatu.saloranta@iki.fi> | 2019-11-27 18:25:31 -0800 |
---|---|---|
committer | Tatu Saloranta <tatu.saloranta@iki.fi> | 2019-11-27 18:25:31 -0800 |
commit | 2088a496366baded7b2a43815a316864bf574614 (patch) | |
tree | 566829b2e164cbb99fb49308b2d0e2315dd669b9 /src/test/java/com/fasterxml/jackson/databind/ser | |
parent | 7c7b5c96f3477096322944dd33b73a99848a5bb6 (diff) | |
download | jackson-databind-2088a496366baded7b2a43815a316864bf574614.tar.gz |
Fix #2555 (use `@JsonProperty.index` for serialization ordering)
Diffstat (limited to 'src/test/java/com/fasterxml/jackson/databind/ser')
-rw-r--r-- | src/test/java/com/fasterxml/jackson/databind/ser/SerializationOrderTest.java (renamed from src/test/java/com/fasterxml/jackson/databind/ser/TestSerializationOrder.java) | 60 |
1 files changed, 41 insertions, 19 deletions
diff --git a/src/test/java/com/fasterxml/jackson/databind/ser/TestSerializationOrder.java b/src/test/java/com/fasterxml/jackson/databind/ser/SerializationOrderTest.java index eac04d355..92cffbbb2 100644 --- a/src/test/java/com/fasterxml/jackson/databind/ser/TestSerializationOrder.java +++ b/src/test/java/com/fasterxml/jackson/databind/ser/SerializationOrderTest.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.databind.*; * Unit tests for verifying that constraints on ordering of serialized * properties are held. */ -public class TestSerializationOrder +public class SerializationOrderTest extends BaseMapTest { static class BeanWithCreator @@ -68,7 +68,7 @@ public class TestSerializationOrder // For [databind#311] @JsonPropertyOrder(alphabetic = true) - public class BeanForGH311 { + static class BeanForGH311 { private final int a; private final int b; @@ -82,6 +82,21 @@ public class TestSerializationOrder public int getB() { return b; } } + // We'll expect ordering of "FUBAR" + @JsonPropertyOrder({ "f" }) + static class OrderingByIndexBean { + public int r; + public int a; + + @JsonProperty(index = 1) + public int b; + + @JsonProperty(index = 0) + public int u; + + public int f; + } + /* /********************************************* /* Unit tests @@ -90,19 +105,23 @@ public class TestSerializationOrder private final ObjectMapper MAPPER = newJsonMapper(); - public void testImplicitOrderByCreator() throws Exception - { - assertEquals("{\"c\":1,\"a\":2,\"b\":0}", MAPPER.writeValueAsString(new BeanWithCreator(1, 2))); + private final ObjectMapper ALPHA_MAPPER = jsonMapperBuilder() + .configure(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY, true) + .build(); + + public void testImplicitOrderByCreator() throws Exception { + assertEquals("{\"c\":1,\"a\":2,\"b\":0}", + MAPPER.writeValueAsString(new BeanWithCreator(1, 2))); } - public void testExplicitOrder() throws Exception - { - assertEquals("{\"c\":3,\"a\":1,\"b\":2,\"d\":4}", MAPPER.writeValueAsString(new BeanWithOrder(1, 2, 3, 4))); + public void testExplicitOrder() throws Exception { + assertEquals("{\"c\":3,\"a\":1,\"b\":2,\"d\":4}", + MAPPER.writeValueAsString(new BeanWithOrder(1, 2, 3, 4))); } - public void testAlphabeticOrder() throws Exception - { - assertEquals("{\"d\":4,\"a\":1,\"b\":2,\"c\":3}", MAPPER.writeValueAsString(new SubBeanWithOrder(1, 2, 3, 4))); + public void testAlphabeticOrder() throws Exception { + assertEquals("{\"d\":4,\"a\":1,\"b\":2,\"c\":3}", + MAPPER.writeValueAsString(new SubBeanWithOrder(1, 2, 3, 4))); } public void testOrderWithMixins() throws Exception @@ -122,20 +141,23 @@ public class TestSerializationOrder public void testOrderWithFeature() throws Exception { - ObjectMapper m = jsonMapperBuilder() - .configure(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY, true) - .build(); assertEquals("{\"a\":1,\"b\":2,\"c\":3,\"d\":4}", - m.writeValueAsString(new BeanFor459())); + ALPHA_MAPPER.writeValueAsString(new BeanFor459())); } // [databind#311] public void testAlphaAndCreatorOrdering() throws Exception { - ObjectMapper m = jsonMapperBuilder() - .configure(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY, true) - .build(); - String json = m.writeValueAsString(new BeanForGH311(2, 1)); + String json = ALPHA_MAPPER.writeValueAsString(new BeanForGH311(2, 1)); assertEquals("{\"a\":1,\"b\":2}", json); } + + // [databind#2555] + public void testOrderByIndexEtc() throws Exception + { + // since "default" order can actually vary with later JDKs, only verify + // case of alphabetic-as-default + assertEquals(aposToQuotes("{'f':0,'u':0,'b':0,'a':0,'r':0}"), + ALPHA_MAPPER.writeValueAsString(new OrderingByIndexBean())); + } } |