package org.rest.rapa.formatter.xstream; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.fail; import org.junit.Before; import org.junit.Test; import org.rest.rapa.formatter.FormatHandler; import org.rest.rapa.resource.Resource; import org.rest.rapa.resource.ResourceImpl; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; public class XMLHandlerTest { private XStream xStream; @Before public void before() { xStream = new XStream(new DomDriver()); xStream.alias("resourceImpl", ResourceImpl.class); } @Test public void shouldReturnXMLAsExtension() { assertEquals("xml", getXMLHandler().getExtension()); } @Test public void shouldReturnContentType() { assertEquals("text/xml", getXMLHandler().getContentType()); } @Test public void shouldSerializeSingleResource() { Resource resource = new ResourceImpl(); resource.setId(1); try { assertEquals(marshall(resource), getXMLHandler() .serialize(resource)); } catch (Exception e) { e.printStackTrace(); fail(); } } @Test public void shouldDeserializeSingleResource() { Resource resource = new ResourceImpl(); resource.setId(1); try { assertEquals(1, (getXMLHandler().deserialize(marshall(resource), ResourceImpl.class)).getId()); } catch (Exception e) { e.printStackTrace(); fail(); } } private String marshall(Resource resource) { return xStream.toXML(resource); } private FormatHandler getXMLHandler() { XMLHandler xmlHandler = new XMLHandler(xStream); return xmlHandler; } }