aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com/fasterxml/jackson/databind/ser
diff options
context:
space:
mode:
authorTatu Saloranta <tatu.saloranta@iki.fi>2019-11-27 18:25:31 -0800
committerTatu Saloranta <tatu.saloranta@iki.fi>2019-11-27 18:25:31 -0800
commit2088a496366baded7b2a43815a316864bf574614 (patch)
tree566829b2e164cbb99fb49308b2d0e2315dd669b9 /src/test/java/com/fasterxml/jackson/databind/ser
parent7c7b5c96f3477096322944dd33b73a99848a5bb6 (diff)
downloadjackson-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()));
+ }
}