package com.aol.micro.server.rest; import static junit.framework.Assert.assertTrue; import static org.hamcrest.CoreMatchers.equalTo; 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 cyclops.collections.immutable.PStackX; import org.junit.Test; import org.pcollections.ConsPStack; import org.pcollections.PStack; import com.aol.micro.server.rest.jackson.JacksonUtil; import lombok.Getter; import lombok.Setter; public class JacksonUtilTest { @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")); } @Test public void serializeToPStack() { PStackX<Integer> list = PStackX.of(1, 2, 3, 4); String jsonString = JacksonUtil.serializeToJson(list); PStack<Integer> stack = JacksonUtil.convertFromJson(jsonString, ConsPStack.class); assertThat(stack, equalTo(list.reverse())); } } @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "queryRequest") @XmlType(name = "") class DummyQueryRequest { @XmlElement(name = "strData") @Getter @Setter private List<String> data = new ArrayList(); }