diff options
author | Tatu Saloranta <tatu.saloranta@iki.fi> | 2014-05-30 21:05:55 -0700 |
---|---|---|
committer | Tatu Saloranta <tatu.saloranta@iki.fi> | 2014-05-30 21:05:55 -0700 |
commit | 267e0482b96c582a1ce2d615ad555df9a6cd8470 (patch) | |
tree | ece33478f7c8cb3b9a295c8cd91ce0d9d2f5e31e /src/test/java/com/fasterxml/jackson/databind/introspect/TestPropertyConflicts.java | |
parent | c41e792b7ab304eeb9c921151784a474766a021f (diff) | |
download | jackson-databind-267e0482b96c582a1ce2d615ad555df9a6cd8470.tar.gz |
add a unit test for inferred/implied names
Diffstat (limited to 'src/test/java/com/fasterxml/jackson/databind/introspect/TestPropertyConflicts.java')
-rw-r--r-- | src/test/java/com/fasterxml/jackson/databind/introspect/TestPropertyConflicts.java | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/test/java/com/fasterxml/jackson/databind/introspect/TestPropertyConflicts.java b/src/test/java/com/fasterxml/jackson/databind/introspect/TestPropertyConflicts.java index a3540efd5..5a6ca22b2 100644 --- a/src/test/java/com/fasterxml/jackson/databind/introspect/TestPropertyConflicts.java +++ b/src/test/java/com/fasterxml/jackson/databind/introspect/TestPropertyConflicts.java @@ -36,6 +36,32 @@ public class TestPropertyConflicts extends BaseMapTest public int getValue() { return value+1; } } + protected static class InferingIntrospector extends JacksonAnnotationIntrospector + { + private static final long serialVersionUID = 1L; + + @Override + public String findImplicitPropertyName(AnnotatedMember member) { + String name = member.getName(); + if (name.startsWith("_")) { + return name.substring(1); + } + return null; + } + } + + static class Infernal { + public String _name() { return "foo"; } + public String getName() { return "Bob"; } + + public void setStuff() { ; // ok + } + + public void _stuff() { + throw new UnsupportedOperationException(); + } + } + /* /********************************************************** /* Test methods @@ -68,4 +94,20 @@ public class TestPropertyConflicts extends BaseMapTest assertEquals(1, mapper.readValue("{\"value\":1}", Getters1A.class).value); assertEquals(2, mapper.readValue("{\"value\":2}", Getters1B.class).value); } + + public void testInferredNameConflictsWithGetters() throws Exception + { + ObjectMapper mapper = new ObjectMapper(); + mapper.setAnnotationIntrospector(new InferingIntrospector()); + String json = mapper.writeValueAsString(new Infernal()); + assertEquals(aposToQuotes("{'name':'Bob'}"), json); + } + + public void testInferredNameConflictsWithSetters() throws Exception + { + ObjectMapper mapper = new ObjectMapper(); + mapper.setAnnotationIntrospector(new InferingIntrospector()); + Infernal inf = mapper.readValue(aposToQuotes("{'name':'Bob'}"), Infernal.class); + assertNotNull(inf); + } } |