aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com/fasterxml/jackson/databind/introspect/TestPropertyConflicts.java
diff options
context:
space:
mode:
authorTatu Saloranta <tatu.saloranta@iki.fi>2014-05-30 21:05:55 -0700
committerTatu Saloranta <tatu.saloranta@iki.fi>2014-05-30 21:05:55 -0700
commit267e0482b96c582a1ce2d615ad555df9a6cd8470 (patch)
treeece33478f7c8cb3b9a295c8cd91ce0d9d2f5e31e /src/test/java/com/fasterxml/jackson/databind/introspect/TestPropertyConflicts.java
parentc41e792b7ab304eeb9c921151784a474766a021f (diff)
downloadjackson-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.java42
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);
+ }
}