package org.transgalactica.management.data.rest.mapper;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.util.Collections;
import java.util.List;
import javax.xml.datatype.DatatypeConfigurationException;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.transgalactica.management.data.rest.TestConfig;
import org.transgalactica.management.data.rest.bo.HangarSummaryTo;
import org.transgalactica.management.data.rest.bo.HangarTo;
import org.transgalactica.management.data.rest.bo.VaisseauSummaryTo;
import org.transgalactica.management.data.rest.bo.VaisseauTo;
import org.transgalactica.management.data.rest.bo.impl.BasicHangarTo;
import org.transgalactica.management.data.rest.bo.impl.BasicVaisseauTo;
import org.transgalactica.management.flux.rest.HangarCommand;
import org.transgalactica.management.flux.rest.HangarDetailDto;
import org.transgalactica.management.flux.rest.HangarDto;
import org.transgalactica.management.flux.rest.HangarVaisseau;
import org.transgalactica.management.flux.rest.ObjectFactory;
import org.transgalactica.management.flux.rest.VaisseauCommand;
import org.transgalactica.management.flux.rest.VaisseauDetailDto;
import org.transgalactica.management.flux.rest.VaisseauDto;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = TestConfig.class)
public class LogisticsMapperTest {
@Autowired
private LogisticsMapper mapper;
@Test
public void testMapToHangarCommand() throws DatatypeConfigurationException {
HangarTo hangarTo = BeanUtils.instantiateClass(BasicHangarTo.class);
hangarTo.setNombreEmplacements(10);
hangarTo.setLocalisation("test");
HangarCommand command = mapper.mapToHangarCommand(hangarTo);
assertNotNull(command);
assertEquals("test", command.getLocalisation());
assertEquals(10, command.getNombreEmplacements());
}
@Test
public void testMapToHangarSummaryTo() throws DatatypeConfigurationException {
ObjectFactory objectFactory = new ObjectFactory();
HangarDto hangarDto = objectFactory.createHangarDto();
hangarDto.setNumero(1L);
hangarDto.setLocalisation("test");
hangarDto.setNombreEmplacements(10);
List<HangarSummaryTo> hangarSummaryTos = mapper.mapToHangarSummaryTo(Collections.singletonList(hangarDto));
assertNotNull(hangarSummaryTos);
assertEquals(1, hangarSummaryTos.size());
assertEquals(new Long(1), hangarSummaryTos.get(0).getNumero());
assertEquals("test", hangarSummaryTos.get(0).getLocalisation());
assertEquals(10, hangarSummaryTos.get(0).getNombreEmplacements());
}
@Test
public void testMapToHangarTo() throws DatatypeConfigurationException {
ObjectFactory objectFactory = new ObjectFactory();
HangarDetailDto hangar = objectFactory.createHangarDetailDto();
hangar.setNumero(1L);
hangar.setLocalisation("test");
hangar.setNombreEmplacements(12);
HangarVaisseau vaisseau = objectFactory.createHangarVaisseau();
vaisseau.setCapaciteDeFret(1L);
vaisseau.setImmatriculation("value");
vaisseau.setModele("modele");
vaisseau.setNombreDePassagers((short) 2);
vaisseau.setAutonomie(3);
vaisseau.setVitesse(4);
hangar.setVaisseaux(objectFactory.createHangarDetailDtoVaisseaux());
hangar.getVaisseaux().getVaisseau().add(vaisseau);
HangarTo hangarTo = mapper.mapToHangarTo(hangar);
assertNotNull(hangarTo);
assertEquals(new Long(1), hangarTo.getNumero());
assertEquals("test", hangarTo.getLocalisation());
assertEquals(12, hangarTo.getNombreEmplacements());
assertNotNull(hangarTo.getVaisseaux());
assertEquals(1, hangarTo.getVaisseaux().size());
assertEquals(1L, hangarTo.getVaisseaux().get(0).getCapaciteDeFret());
assertEquals("value", hangarTo.getVaisseaux().get(0).getImmatriculation());
assertEquals("modele", hangarTo.getVaisseaux().get(0).getModele());
assertEquals((short) 2, hangarTo.getVaisseaux().get(0).getNombreDePassagers());
assertEquals(3, hangarTo.getVaisseaux().get(0).getAutonomie());
assertEquals(4, hangarTo.getVaisseaux().get(0).getVitesse());
}
@Test
public void testMapToVaisseauCommand() throws DatatypeConfigurationException {
VaisseauTo vaisseauTo = BeanUtils.instantiateClass(BasicVaisseauTo.class);
vaisseauTo.setImmatriculation("immatriculation");
vaisseauTo.setModele("modele");
vaisseauTo.setCapaciteDeFret(5);
vaisseauTo.setVitesse(4);
vaisseauTo.setAutonomie(3);
vaisseauTo.setNombreDePassagers((short) 2);
vaisseauTo.setMultiplicateurHyperdrive(new Short((short) 1));
VaisseauCommand command = mapper.mapToVaisseauCommand(vaisseauTo);
assertNotNull(command);
assertEquals("immatriculation", command.getImmatriculation());
assertEquals("modele", command.getModele());
assertEquals(5, command.getCapaciteDeFret());
assertEquals(4, command.getVitesse());
assertEquals(3, command.getAutonomie());
assertEquals(2, command.getNombreDePassagers());
assertEquals((short) 1, command.getMultiplicateurHyperdrive());
}
@Test
public void testMapToVaisseauSummaryTo() throws DatatypeConfigurationException {
ObjectFactory objectFactory = new ObjectFactory();
VaisseauDto vaisseauDto = objectFactory.createVaisseauDto();
vaisseauDto.setImmatriculation("immatriculation");
vaisseauDto.setModele("modele");
vaisseauDto.setLocalisationHangar("localisation");
List<VaisseauSummaryTo> vaisseauSummaryTos = mapper.mapToVaisseauSummaryTo(Collections
.singletonList(vaisseauDto));
assertNotNull(vaisseauSummaryTos);
assertEquals(1, vaisseauSummaryTos.size());
assertEquals("immatriculation", vaisseauSummaryTos.get(0).getImmatriculation());
assertEquals("modele", vaisseauSummaryTos.get(0).getModele());
assertEquals("localisation", vaisseauSummaryTos.get(0).getLocalisationHangar());
}
@Test
public void testMapToVaisseauTo() throws DatatypeConfigurationException {
ObjectFactory objectFactory = new ObjectFactory();
VaisseauDetailDto vaisseau = objectFactory.createVaisseauDetailDto();
vaisseau.setImmatriculation("immatriculation");
vaisseau.setModele("modele");
vaisseau.setCapaciteDeFret(5);
vaisseau.setVitesse(4);
vaisseau.setAutonomie(3);
vaisseau.setNombreDePassagers((short) 2);
vaisseau.setMultiplicateurHyperdrive(new Short((short) 1));
vaisseau.setLocalisationHangar("hangar");
vaisseau.setNumeroHangar(new Long(10));
VaisseauTo vaisseauTo = mapper.mapToVaisseauTo(vaisseau);
assertNotNull(vaisseauTo);
assertEquals("immatriculation", vaisseauTo.getImmatriculation());
assertEquals("modele", vaisseauTo.getModele());
assertEquals(5, vaisseauTo.getCapaciteDeFret());
assertEquals(4, vaisseauTo.getVitesse());
assertEquals(3, vaisseauTo.getAutonomie());
assertEquals(2, vaisseauTo.getNombreDePassagers());
assertEquals(new Short((short) 1), vaisseauTo.getMultiplicateurHyperdrive());
assertEquals("hangar", vaisseauTo.getLocalisationHangar());
assertEquals(new Long(10), vaisseauTo.getNumeroHangar());
}
}