package org.resthub.web;
import org.fest.assertions.api.Assertions;
import org.resthub.web.exception.SerializationException;
import org.resthub.web.model.Book;
import org.resthub.web.model.SampleResource;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.List;
public class XmlSerializationHelperTest {
private String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><sampleResource><description>desc</description><id>123</id><name>Albert</name></sampleResource>";
@Test
public void testSerialization() {
SampleResource r = new SampleResource();
r.setId(123L);
r.setName("Albert");
r.setDescription("desc");
String result = XmlHelper.serialize(r);
Assertions.assertThat(result).contains("<id>123</id>");
Assertions.assertThat(result).contains("<name>Albert</name>");
Assertions.assertThat(result).contains("<description>desc</description>");
}
@Test
public void testPageSerialization() {
SampleResource r1 = new SampleResource();
r1.setId(123L);
r1.setName("Albert");
r1.setDescription("desc");
SampleResource r2 = new SampleResource();
r2.setId(123L);
r2.setName("Albert");
r2.setDescription("desc");
List<SampleResource> l = new ArrayList<SampleResource>();
l.add(r1);
l.add(r2);
Page<SampleResource> p = new PageImpl<SampleResource>(l);
String result = XmlHelper.serialize(p);
Assertions.assertThat(result).contains("Albert");
}
@Test
public void testDeserialization() {
SampleResource r = XmlHelper.deserialize(xml, SampleResource.class);
Assertions.assertThat(r.getId()).isEqualTo(123);
Assertions.assertThat(r.getName()).isEqualTo("Albert");
Assertions.assertThat(r.getDescription()).isEqualTo("desc");
}
@Test(expectedExceptions = SerializationException.class)
public void testInvalidDeserialization() {
XmlHelper.deserialize("Invalid content", SampleResource.class);
}
@Test
public void testSummaryXml() {
Book book = new Book("Effective Java","Joshua Bloch","Essential",1);
String serializedBook = XmlHelper.serialize(book, Book.SummaryView.class);
Book unserializedBook = XmlHelper.deserialize(serializedBook, Book.class);
Assertions.assertThat(unserializedBook).isNotNull().isEqualTo(new Book(null,"Joshua Bloch",null,1));
}
@Test
public void testFullXml() {
Book book = new Book("Effective Java","Joshua Bloch","Essential",1);
String serializedBook = XmlHelper.serialize(book);
Book unserializedBook = XmlHelper.deserialize(serializedBook, Book.class);
Assertions.assertThat(unserializedBook).isNotNull().isEqualTo(new Book("Effective Java","Joshua Bloch","Essential",1));
}
}