blob: 62430fce5154fae8c66794b5da7df6bb2084f583 [file] [log] [blame]
package org.codehaus.jackson.map.ser;
import java.util.*;
import org.codehaus.jackson.annotate.*;
import org.codehaus.jackson.map.*;
public class TestIgnoreProperties
extends BaseMapTest
{
/*
****************************************************************
* Helper classes
****************************************************************
*/
@JsonIgnoreProperties({"b", "c"})
static class IgnoreSome
{
public int a = 3;
public String b = "x";
public int getC() { return -6; }
public String getD() { return "abc"; }
}
@SuppressWarnings("serial")
@JsonIgnoreProperties({"@class"})
static class MyMap extends HashMap<String,String> { }
/*
****************************************************************
* Unit tests
****************************************************************
*/
public void testExplicitIgnoralWithBean() throws Exception
{
IgnoreSome value = new IgnoreSome();
Map<String,Object> result = writeAndMap(value);
assertEquals(2, result.size());
// verify that specified fields are ignored
assertFalse(result.containsKey("b"));
assertFalse(result.containsKey("c"));
// and that others are not
assertEquals(Integer.valueOf(value.a), result.get("a"));
assertEquals(value.getD(), result.get("d"));
}
public void testExplicitIgnoralWithMap() throws Exception
{
// test simulating need to filter out metadata like class name
MyMap value = new MyMap();
value.put("a", "b");
value.put("@class", MyMap.class.getName());
Map<String,Object> result = writeAndMap(value);
assertEquals(1, result.size());
// verify that specified field is ignored
assertFalse(result.containsKey("@class"));
// and that others are not
assertEquals(value.get("a"), result.get("a"));
}
}