package com.aol.micro.server.rest;
import static junit.framework.Assert.assertTrue;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import lombok.Getter;
import lombok.Setter;
import org.junit.Test;
import com.aol.micro.server.rest.jackson.JacksonUtil;
import com.google.common.collect.ImmutableList;
public class JacksonUtilTest {
@Test
public void testGenerics(){
String s = JacksonUtil.serializeToJson(ImmutableList.of(new MyEntity()));
ImmutableList<MyEntity> list = JacksonUtil.convertFromJson(s, JacksonUtil.getMapper().getTypeFactory().constructParametricType(ImmutableList.class,MyEntity.class));
assertThat(list.get(0),is(new MyEntity()));
}
@Test
public void generateSampleRequest() {
DummyQueryRequest request = new DummyQueryRequest();
request.getData().add("blah");
assertTrue(JacksonUtil.serializeToJson(request).contains("strData"));
}
@Test
public void serialiseAndDeserialise(){
DummyQueryRequest request = new DummyQueryRequest();
request.getData().add("blah");
String requestStr = (String) JacksonUtil.serializeToJsonLogFailure(request);
DummyQueryRequest requestDeserialised = JacksonUtil.convertFromJson(requestStr, DummyQueryRequest.class);
assertTrue(request.getData().contains("blah"));
}
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "queryRequest")
@XmlType(name = "")
class DummyQueryRequest {
@XmlElement(name = "strData")
@Getter
@Setter
private List<String> data = new ArrayList();
}