package org.transgalactica.management.rest.logistics.mapper; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.util.Arrays; import org.junit.Test; import org.springframework.beans.BeanInstantiationException; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.transgalactica.management.data.materiel.bo.BasicVaisseauSummary; import org.transgalactica.management.data.materiel.bo.HangarEntity; import org.transgalactica.management.data.materiel.bo.VaisseauEntity; import org.transgalactica.management.data.materiel.bo.VaisseauIntergalactiqueEntity; import org.transgalactica.management.data.materiel.bo.VaisseauSearchCriteria; import org.transgalactica.management.data.materiel.bo.VaisseauSummary; import org.transgalactica.management.data.materiel.bo.impl.JpaHangarEntity; import org.transgalactica.management.data.materiel.bo.impl.JpaVaisseauEntity; import org.transgalactica.management.data.materiel.bo.impl.JpaVaisseauIntergalactiqueEntity; import org.transgalactica.management.rest.AbstractWebTest; import org.transgalactica.management.rest.logistics.data.VaisseauCommand; import org.transgalactica.management.rest.logistics.data.VaisseauDetailDto; import org.transgalactica.management.rest.logistics.data.VaisseauDtos; import org.transgalactica.management.rest.logistics.data.impl.JaxbVaisseauCommand; /** * Classe de tests pour le mapper relatif aux Vaisseaus. * * @author Thierry */ public class VaisseauMapperTest extends AbstractWebTest { @Autowired private VaisseauMapper mapper; @Test public void testMapVaisseauCommandToEntity() { VaisseauCommand command = BeanUtils.instantiateClass(JaxbVaisseauCommand.class); VaisseauEntity entity = BeanUtils.instantiateClass(JpaVaisseauEntity.class); command.setImmatriculation("immatriculation"); command.setCapaciteDeFret(10); command.setModele("modele"); command.setNombreDePassagers((short) 100); command.setAutonomie(100000); command.setVitesse(1000); command.setMultiplicateurHyperdrive(null); mapper.mapVaisseauCommandToEntity(command, entity); assertNotNull(entity); assertEquals("immatriculation", entity.getImmatriculation()); assertEquals(10, entity.getCapaciteDeFret()); assertEquals("modele", entity.getModele()); assertEquals(100, entity.getNombreDePassagers()); assertEquals(100000, entity.getAutonomie()); assertEquals(1000, entity.getVitesse()); } @Test public void testMapVaisseauIntergalactiqueCommandToEntity() { VaisseauCommand command = BeanUtils.instantiateClass(JaxbVaisseauCommand.class); VaisseauIntergalactiqueEntity entity = BeanUtils.instantiateClass(JpaVaisseauIntergalactiqueEntity.class); command.setImmatriculation("immatriculation"); command.setCapaciteDeFret(10); command.setModele("modele"); command.setNombreDePassagers((short) 100); command.setAutonomie(100000); command.setVitesse(1000); command.setMultiplicateurHyperdrive(new Short("2")); mapper.mapVaisseauCommandToEntity(command, entity); assertNotNull(entity); assertEquals("immatriculation", entity.getImmatriculation()); assertEquals(10, entity.getCapaciteDeFret()); assertEquals("modele", entity.getModele()); assertEquals(100, entity.getNombreDePassagers()); assertEquals(100000, entity.getAutonomie()); assertEquals(1000, entity.getVitesse()); assertEquals(2, entity.getMultiplicateurHyperdrive()); } @Test public void testMapToRechercheHangarCriteres() { VaisseauSearchCriteria criteres = mapper.mapToRechercheVaisseauCriteres("immatriculation", "modele", true); assertNotNull(criteres); assertEquals("immatriculation", criteres.getImmatriculation()); assertEquals("modele", criteres.getModele()); assertEquals(true, criteres.isIntergalactique()); } @Test public void testMapToHangarDtos() throws BeanInstantiationException, NoSuchMethodException, SecurityException { VaisseauSummary projection = new BasicVaisseauSummary("immatriculationVaisseau", "modeleVaisseau", "localisationHangar"); VaisseauDtos dtos = mapper.mapToVaisseauDtos(Arrays.asList(projection)); assertNotNull(dtos); assertEquals(1, dtos.getVaisseaux().size()); assertEquals("immatriculationVaisseau", dtos.getVaisseaux().get(0).getImmatriculation()); assertEquals("localisationHangar", dtos.getVaisseaux().get(0).getLocalisationHangar()); assertEquals("modeleVaisseau", dtos.getVaisseaux().get(0).getModele()); } @Test public void testMapToHangarDetailDto() { VaisseauEntity entity = BeanUtils.instantiateClass(JpaVaisseauEntity.class); entity.setCapaciteDeFret(1); entity.setImmatriculation("immatriculation"); entity.setModele("modele"); entity.setNombreDePassagers((short) 10); entity.setAutonomie(100); entity.setVitesse(1000); HangarEntity hangarEntity = BeanUtils.instantiateClass(JpaHangarEntity.class); hangarEntity.setLocalisation("localisationHangar"); ((JpaHangarEntity) hangarEntity).setNumero(new Long(9)); entity.setHangar(hangarEntity); VaisseauDetailDto dto = mapper.mapToVaisseauDetailDto(entity); assertNotNull(dto); assertEquals(1, dto.getCapaciteDeFret()); assertEquals("immatriculation", dto.getImmatriculation()); assertEquals("modele", dto.getModele()); assertEquals((short) 10, dto.getNombreDePassagers()); assertEquals(100, dto.getAutonomie()); assertEquals(1000, dto.getVitesse()); assertEquals(null, dto.getMultiplicateurHyperdrive()); assertEquals("localisationHangar", dto.getLocalisationHangar()); assertEquals(new Long(9), dto.getNumeroHangar()); } @Test public void testMapToHangarDetailDto_vaisseauIntergalactique() { VaisseauIntergalactiqueEntity entity = BeanUtils.instantiateClass(JpaVaisseauIntergalactiqueEntity.class); entity.setCapaciteDeFret(1); entity.setImmatriculation("immatriculation"); entity.setModele("modele"); entity.setNombreDePassagers((short) 10); entity.setAutonomie(100); entity.setVitesse(1000); entity.setMultiplicateurHyperdrive((short) 6); HangarEntity hangarEntity = BeanUtils.instantiateClass(JpaHangarEntity.class); hangarEntity.setLocalisation("localisationHangar"); ((JpaHangarEntity) hangarEntity).setNumero(new Long(9)); entity.setHangar(hangarEntity); VaisseauDetailDto dto = mapper.mapToVaisseauDetailDto(entity); assertNotNull(dto); assertEquals(1, dto.getCapaciteDeFret()); assertEquals("immatriculation", dto.getImmatriculation()); assertEquals("modele", dto.getModele()); assertEquals((short) 10, dto.getNombreDePassagers()); assertEquals(100, dto.getAutonomie()); assertEquals(1000, dto.getVitesse()); assertEquals(new Short("6"), dto.getMultiplicateurHyperdrive()); assertEquals("localisationHangar", dto.getLocalisationHangar()); assertEquals(new Long(9), dto.getNumeroHangar()); } }