Skip to content

Commit

Permalink
more test coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
cowtowncoder committed Nov 3, 2016
1 parent d227752 commit 8f80662
Show file tree
Hide file tree
Showing 7 changed files with 70 additions and 87 deletions.
Expand Up @@ -183,20 +183,42 @@ public Iterator<AnnotatedParameter> getConstructorParameters() {
* value of the property. * value of the property.
* Null if no such member exists. * Null if no such member exists.
*/ */
public abstract AnnotatedMember getAccessor(); public AnnotatedMember getAccessor()
{
AnnotatedMember m = getGetter();
if (m == null) {
m = getField();
}
return m;
}


/** /**
* Method used to find mutator (constructor parameter, setter, field) to use for * Method used to find mutator (constructor parameter, setter, field) to use for
* changing value of the property. * changing value of the property.
* Null if no such member exists. * Null if no such member exists.
*/ */
public abstract AnnotatedMember getMutator(); public AnnotatedMember getMutator() {
AnnotatedMember acc = getConstructorParameter();
if (acc == null) {
acc = getSetter();
if (acc == null) {
acc = getField();
}
}
return acc;
}


/** /**
* @since 2.3 * @since 2.3
*/ */
public abstract AnnotatedMember getNonConstructorMutator(); public AnnotatedMember getNonConstructorMutator() {

AnnotatedMember m = getSetter();
if (m == null) {
m = getField();
}
return m;
}

/** /**
* Method used to find the property member (getter, setter, field) that has * Method used to find the property member (getter, setter, field) that has
* the highest precedence in current context (getter method when serializing, * the highest precedence in current context (getter method when serializing,
Expand Down
Expand Up @@ -509,38 +509,6 @@ public Iterator<AnnotatedParameter> getConstructorParameters() {
} }
return new MemberIterator<AnnotatedParameter>(_ctorParameters); return new MemberIterator<AnnotatedParameter>(_ctorParameters);
} }

@Override
public AnnotatedMember getAccessor()
{
AnnotatedMember m = getGetter();
if (m == null) {
m = getField();
}
return m;
}

@Override
public AnnotatedMember getMutator()
{
AnnotatedMember m = getConstructorParameter();
if (m == null) {
m = getSetter();
if (m == null) {
m = getField();
}
}
return m;
}

@Override
public AnnotatedMember getNonConstructorMutator() {
AnnotatedMember m = getSetter();
if (m == null) {
m = getField();
}
return m;
}


@Override @Override
public AnnotatedMember getPrimaryMember() { public AnnotatedMember getPrimaryMember() {
Expand Down
Expand Up @@ -85,15 +85,15 @@ public JsonDeserializer<?> findArrayDeserializer(ArrayType type,
TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer)
throws JsonMappingException throws JsonMappingException
{ {
return (_classMappings == null) ? null : _classMappings.get(new ClassKey(type.getRawClass())); return _find(type);
} }


@Override @Override
public JsonDeserializer<?> findBeanDeserializer(JavaType type, public JsonDeserializer<?> findBeanDeserializer(JavaType type,
DeserializationConfig config, BeanDescription beanDesc) DeserializationConfig config, BeanDescription beanDesc)
throws JsonMappingException throws JsonMappingException
{ {
return (_classMappings == null) ? null : _classMappings.get(new ClassKey(type.getRawClass())); return _find(type);
} }


@Override @Override
Expand All @@ -103,7 +103,7 @@ public JsonDeserializer<?> findCollectionDeserializer(CollectionType type,
JsonDeserializer<?> elementDeserializer) JsonDeserializer<?> elementDeserializer)
throws JsonMappingException throws JsonMappingException
{ {
return (_classMappings == null) ? null : _classMappings.get(new ClassKey(type.getRawClass())); return _find(type);
} }


@Override @Override
Expand All @@ -113,7 +113,7 @@ public JsonDeserializer<?> findCollectionLikeDeserializer(CollectionLikeType typ
JsonDeserializer<?> elementDeserializer) JsonDeserializer<?> elementDeserializer)
throws JsonMappingException throws JsonMappingException
{ {
return (_classMappings == null) ? null : _classMappings.get(new ClassKey(type.getRawClass())); return _find(type);
} }


@Override @Override
Expand All @@ -138,19 +138,22 @@ public JsonDeserializer<?> findTreeNodeDeserializer(Class<? extends JsonNode> no
DeserializationConfig config, BeanDescription beanDesc) DeserializationConfig config, BeanDescription beanDesc)
throws JsonMappingException throws JsonMappingException
{ {
return (_classMappings == null) ? null : _classMappings.get(new ClassKey(nodeType)); if (_classMappings == null) {
return null;
}
return _classMappings.get(new ClassKey(nodeType));
} }

@Override @Override
public JsonDeserializer<?> findReferenceDeserializer(ReferenceType refType, public JsonDeserializer<?> findReferenceDeserializer(ReferenceType refType,
DeserializationConfig config, BeanDescription beanDesc, DeserializationConfig config, BeanDescription beanDesc,
TypeDeserializer contentTypeDeserializer, JsonDeserializer<?> contentDeserializer) TypeDeserializer contentTypeDeserializer, JsonDeserializer<?> contentDeserializer)
throws JsonMappingException { throws JsonMappingException {
// 21-Oct-2015, tatu: Unlikely this will really get used (reference types need more // 21-Oct-2015, tatu: Unlikely this will really get used (reference types need more
// work, simple registration probably not sufficient). But whatever. // work, simple registration probably not sufficient). But whatever.
return (_classMappings == null) ? null : _classMappings.get(new ClassKey(refType.getRawClass())); return _find(refType);
} }

@Override @Override
public JsonDeserializer<?> findMapDeserializer(MapType type, public JsonDeserializer<?> findMapDeserializer(MapType type,
DeserializationConfig config, BeanDescription beanDesc, DeserializationConfig config, BeanDescription beanDesc,
Expand All @@ -159,7 +162,7 @@ public JsonDeserializer<?> findMapDeserializer(MapType type,
JsonDeserializer<?> elementDeserializer) JsonDeserializer<?> elementDeserializer)
throws JsonMappingException throws JsonMappingException
{ {
return (_classMappings == null) ? null : _classMappings.get(new ClassKey(type.getRawClass())); return _find(type);
} }


@Override @Override
Expand All @@ -170,6 +173,13 @@ public JsonDeserializer<?> findMapLikeDeserializer(MapLikeType type,
JsonDeserializer<?> elementDeserializer) JsonDeserializer<?> elementDeserializer)
throws JsonMappingException throws JsonMappingException
{ {
return (_classMappings == null) ? null : _classMappings.get(new ClassKey(type.getRawClass())); return _find(type);
}

private final JsonDeserializer<?> _find(JavaType type) {
if (_classMappings == null) {
return null;
}
return _classMappings.get(new ClassKey(type.getRawClass()));
} }
} }
Expand Up @@ -273,46 +273,6 @@ public Iterator<AnnotatedParameter> getConstructorParameters() {
return Collections.singleton(param).iterator(); return Collections.singleton(param).iterator();
} }


/**
* Method used to find accessor (getter, field to access) to use for accessing
* value of the property.
* Null if no such member exists.
*/
@Override
public AnnotatedMember getAccessor() {
AnnotatedMember acc = getGetter();
if (acc == null) {
acc = getField();
}
return acc;
}

/**
* Method used to find mutator (constructor parameter, setter, field) to use for
* changing value of the property.
* Null if no such member exists.
*/
@Override
public AnnotatedMember getMutator() {
AnnotatedMember acc = getConstructorParameter();
if (acc == null) {
acc = getSetter();
if (acc == null) {
acc = getField();
}
}
return acc;
}

@Override
public AnnotatedMember getNonConstructorMutator() {
AnnotatedMember acc = getSetter();
if (acc == null) {
acc = getField();
}
return acc;
}

@Override @Override
public AnnotatedMember getPrimaryMember() { return _member; } public AnnotatedMember getPrimaryMember() { return _member; }
} }
Expand Up @@ -279,7 +279,10 @@ public void testMultipleModules() throws Exception
SimpleModule mod2 = new SimpleModule("test2", Version.unknownVersion()); SimpleModule mod2 = new SimpleModule("test2", Version.unknownVersion());
mod1.addSerializer(SimpleEnum.class, new SimpleEnumSerializer()); mod1.addSerializer(SimpleEnum.class, new SimpleEnumSerializer());
mod1.addDeserializer(CustomBean.class, new CustomBeanDeserializer()); mod1.addDeserializer(CustomBean.class, new CustomBeanDeserializer());
mod2.addDeserializer(SimpleEnum.class, new SimpleEnumDeserializer());
Map<Class<?>,JsonDeserializer<?>> desers = new HashMap<>();
desers.put(SimpleEnum.class, new SimpleEnumDeserializer());
mod2.setDeserializers(new SimpleDeserializers(desers));
mod2.addSerializer(CustomBean.class, new CustomBeanSerializer()); mod2.addSerializer(CustomBean.class, new CustomBeanSerializer());


ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
Expand Down
Expand Up @@ -194,7 +194,10 @@ public void testWrapperToPrimitiveType()
public void testFindEnumType() public void testFindEnumType()
{ {
assertEquals(TestEnum.class, ClassUtil.findEnumType(TestEnum.A)); assertEquals(TestEnum.class, ClassUtil.findEnumType(TestEnum.A));
// different codepaths for empty and non-empty EnumSets...
assertEquals(TestEnum.class, ClassUtil.findEnumType(EnumSet.allOf(TestEnum.class))); assertEquals(TestEnum.class, ClassUtil.findEnumType(EnumSet.allOf(TestEnum.class)));
assertEquals(TestEnum.class, ClassUtil.findEnumType(EnumSet.noneOf(TestEnum.class)));

assertEquals(TestEnum.class, ClassUtil.findEnumType(new EnumMap<TestEnum,Integer>(TestEnum.class))); assertEquals(TestEnum.class, ClassUtil.findEnumType(new EnumMap<TestEnum,Integer>(TestEnum.class)));
} }


Expand Down
@@ -1,5 +1,7 @@
package com.fasterxml.jackson.databind.util; package com.fasterxml.jackson.databind.util;


import java.util.List;

import com.fasterxml.jackson.databind.BaseMapTest; import com.fasterxml.jackson.databind.BaseMapTest;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationConfig; import com.fasterxml.jackson.databind.SerializationConfig;
Expand Down Expand Up @@ -47,4 +49,19 @@ public void testConstructWithToString() {
assertEquals(3, values.values().size()); assertEquals(3, values.values().size());
assertEquals(3, values.internalMap().size()); assertEquals(3, values.internalMap().size());
} }

@SuppressWarnings("deprecation")
public void testEnumResolver()
{
EnumResolver enumRes = EnumResolver.constructUnsafeUsingToString(ABC.class);
assertEquals(ABC.B, enumRes.getEnum(1));
assertNull(enumRes.getEnum(-1));
assertNull(enumRes.getEnum(3));
assertEquals(2, enumRes.lastValidIndex());
List<Enum<?>> enums = enumRes.getEnums();
assertEquals(3, enums.size());
assertEquals(ABC.A, enums.get(0));
assertEquals(ABC.B, enums.get(1));
assertEquals(ABC.C, enums.get(2));
}
} }

0 comments on commit 8f80662

Please sign in to comment.