blob: 27d52e6ba0b1b62069caeaa56f183a206cc766fb [file] [log] [blame]
package org.codehaus.jackson.map.ser;
import java.util.*;
import org.codehaus.jackson.annotate.JsonAnyGetter;
import org.codehaus.jackson.map.BaseMapTest;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig;
public class TestAnnotationAnyGetter
extends BaseMapTest
{
/*
/**********************************************************
/* Helper bean classes
/**********************************************************
*/
static class Bean
{
final static Map<String,Boolean> extra = new HashMap<String,Boolean>();
static {
extra.put("a", Boolean.TRUE);
}
public int getX() { return 3; }
@JsonAnyGetter
public Map<String,Boolean> getExtra() { return extra; }
}
static class AnyOnlyBean
{
@JsonAnyGetter
public Map<String,Integer> any() {
HashMap<String,Integer> map = new HashMap<String,Integer>();
map.put("a", 3);
return map;
}
}
/*
/**********************************************************
/* Test cases
/**********************************************************
*/
public void testSimpleJsonValue() throws Exception
{
ObjectMapper m = new ObjectMapper();
String json = serializeAsString(m, new Bean());
Map<?,?> map = m.readValue(json, Map.class);
assertEquals(2, map.size());
assertEquals(Integer.valueOf(3), map.get("x"));
assertEquals(Boolean.TRUE, map.get("a"));
}
// [JACKSON-392]
public void testAnyOnly() throws Exception
{
ObjectMapper m;
// First, with normal fail settings:
m = new ObjectMapper();
m.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, true);
String json = serializeAsString(m, new AnyOnlyBean());
assertEquals("{\"a\":3}", json);
// then without fail
m = new ObjectMapper();
m.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false);
json = serializeAsString(m, new AnyOnlyBean());
assertEquals("{\"a\":3}", json);
}
}