package org.transgalactica.info.data.motd.mapper;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.time.LocalDateTime;
import java.util.GregorianCalendar;
import java.util.List;
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.transgalactica.info.data.motd.TestContext;
import org.transgalactica.info.data.motd.bo.MessageTo;
import org.transgalactica.info.flux.motd.Image;
import org.transgalactica.info.flux.motd.Message;
import org.transgalactica.info.flux.motd.Motd;
import org.transgalactica.info.flux.motd.ObjectFactory;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = TestContext.class)
public class MotdMapperTest {
@Autowired
private MotdMapper motdMapper;
@Test
public void testMap_motd() throws DatatypeConfigurationException {
ObjectFactory objectFactory = new ObjectFactory();
Image image = objectFactory.createImage();
image.setUrl("url");
image.setTexteAlternatif("texte alternatif");
Message message = objectFactory.createMessage();
message.setId("id");
message.setTitre("titre");
message.setContenu("contenu");
message.setDatePublication(DatatypeFactory.newInstance().newXMLGregorianCalendar(
new GregorianCalendar(2012, 2, 29, 11, 9, 34)));
message.setImage(image);
Motd messages = objectFactory.createMotd();
messages.getMessage().add(message);
List<MessageTo> messageTos = motdMapper.map(messages);
assertNotNull(messageTos);
assertEquals(1, messageTos.size());
assertNotNull(messageTos.get(0));
assertEquals("id", messageTos.get(0).getId());
assertEquals("titre", messageTos.get(0).getTitre());
assertEquals("contenu", messageTos.get(0).getContenu());
assertEquals(LocalDateTime.of(2012, 3, 29, 11, 9, 34), messageTos.get(0).getDatePublication());
assertNotNull(messageTos.get(0).getImage());
assertEquals("url", messageTos.get(0).getImage().getUrl());
assertEquals("texte alternatif", messageTos.get(0).getImage().getTexteAlternatif());
}
@Test
public void testMap_message() throws DatatypeConfigurationException {
ObjectFactory objectFactory = new ObjectFactory();
Image image = objectFactory.createImage();
image.setUrl("url");
image.setTexteAlternatif("texte alternatif");
Message message = objectFactory.createMessage();
message.setId("id");
message.setTitre("titre");
message.setContenu("contenu");
message.setDatePublication(DatatypeFactory.newInstance().newXMLGregorianCalendar(
new GregorianCalendar(2012, 2, 29, 11, 9, 34)));
message.setImage(image);
MessageTo messageTo = motdMapper.map(message);
assertNotNull(messageTo);
assertEquals("id", messageTo.getId());
assertEquals("titre", messageTo.getTitre());
assertEquals("contenu", messageTo.getContenu());
assertEquals(LocalDateTime.of(2012, 3, 29, 11, 9, 34), messageTo.getDatePublication());
assertNotNull(messageTo.getImage());
assertEquals("url", messageTo.getImage().getUrl());
assertEquals("texte alternatif", messageTo.getImage().getTexteAlternatif());
}
}