blob: 2e8be4389a3804a759622fb55a75a6ee1480d6e9 [file] [log] [blame]
package org.codehaus.jackson.map.access;
import java.util.*;
import org.codehaus.jackson.annotate.JsonAnyGetter;
import org.codehaus.jackson.annotate.JsonAnySetter;
import org.codehaus.jackson.map.*;
/**
* Separate tests located in different package than code being
* exercised; needed to trigger some access-related failures.
*/
public class TestSerAnyGetter
extends BaseMapTest
{
/*
/**********************************************************
/* Helper bean classes
/**********************************************************
*/
static class DynaBean {
public int id;
protected HashMap<String,String> other = new HashMap<String,String>();
@JsonAnyGetter
public Map<String,String> any() {
return other;
}
@JsonAnySetter
public void set(String name, String value) {
other.put(name, value);
}
}
private static class PrivateThing
{
@SuppressWarnings("unused")
@JsonAnyGetter
public Map<?,?> getProperties()
{
HashMap<String,String> map = new HashMap<String,String>();
map.put("a", "A");
return map;
}
}
/*
/**********************************************************
/* Test cases
/**********************************************************
*/
public void testDynaBean() throws Exception
{
ObjectMapper m = new ObjectMapper();
DynaBean b = new DynaBean();
b.id = 123;
b.set("name", "Billy");
assertEquals("{\"id\":123,\"name\":\"Billy\"}", m.writeValueAsString(b));
DynaBean result = m.readValue("{\"id\":2,\"name\":\"Joe\"}", DynaBean.class);
assertEquals(2, result.id);
assertEquals("Joe", result.other.get("name"));
}
public void testPrivate() throws Exception
{
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(new PrivateThing());
assertEquals("{\"a\":\"A\"}", json);
}
}