blob: 6851fb024a5251a6e9a5e57ce3ab8f9f8dfafef2 [file] [log] [blame]
package org.codehaus.jackson.map.ser;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.annotate.JsonPropertyOrder;
import org.codehaus.jackson.annotate.JsonRawValue;
import org.codehaus.jackson.map.BaseMapTest;
import org.codehaus.jackson.map.ObjectMapper;
/**
* This unit test suite tests functioning of {@link JsonRawValue}
* annotation with bean serialization.
*/
public class TestAnnotationJsonRawValue
extends BaseMapTest
{
/*
/*********************************************************
/* Helper bean classes
/*********************************************************
*/
/// Class for testing {@link JsonRawValue} annotations with getters returning String
@JsonPropertyOrder(alphabetic=true)
final static class ClassGetter<T>
{
private final T _value;
private ClassGetter(T value) { _value = value;}
public T getNonRaw() { return _value; }
@JsonProperty("raw") @JsonRawValue public T foobar() { return _value; }
@JsonProperty @JsonRawValue protected T value() { return _value; }
}
/*
/*********************************************************
/* Test cases
/*********************************************************
*/
public void testSimpleStringGetter() throws Exception
{
ObjectMapper m = new ObjectMapper();
String value = "abc";
String result = m.writeValueAsString(new ClassGetter<String>(value));
String expected = String.format("{\"nonRaw\":\"%s\",\"raw\":%s,\"value\":%s}", value, value, value);
assertEquals(expected, result);
}
public void testSimpleNonStringGetter() throws Exception
{
ObjectMapper m = new ObjectMapper();
int value = 123;
String result = m.writeValueAsString(new ClassGetter<Integer>(value));
String expected = String.format("{\"nonRaw\":%d,\"raw\":%d,\"value\":%d}", value, value, value);
assertEquals(expected, result);
}
public void testNullStringGetter() throws Exception
{
ObjectMapper m = new ObjectMapper();
String value = null;
String result = m.writeValueAsString(new ClassGetter<String>(value));
String expected = String.format("{\"nonRaw\":%d,\"raw\":%d,\"value\":%d}", value, value, value);
assertEquals(expected, result);
}
}