package org.transgalactica.management.data.rest.dao; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.util.List; import javax.inject.Inject; import javax.inject.Named; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.BeanUtils; import org.springframework.http.client.ClientHttpRequestFactory; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.annotation.DirtiesContext.ClassMode; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.util.ReflectionTestUtils; import org.springframework.web.client.RestTemplate; import org.transgalactica.management.data.rest.TestConfig; import org.transgalactica.management.data.rest.bo.VaisseauSearchCriteria; import org.transgalactica.management.data.rest.bo.VaisseauSummaryTo; import org.transgalactica.management.data.rest.bo.VaisseauTo; import org.transgalactica.management.data.rest.bo.impl.BasicVaisseauSearchCriteria; import org.transgalactica.management.data.rest.bo.impl.BasicVaisseauTo; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = TestConfig.class) @DirtiesContext(classMode = ClassMode.AFTER_CLASS) public class VaisseauDaoTest { @Inject @Named("mockClientHttpRequestFactory") private ClientHttpRequestFactory mock; @Inject private VaisseauDao vaisseauDao; @Before public void mockDao() { RestTemplate template = (RestTemplate) ReflectionTestUtils.getField(vaisseauDao, "restTemplate"); template.setRequestFactory(mock); } @Test public void testSearchByCriteria() { VaisseauSearchCriteria criteres = BeanUtils.instantiateClass(BasicVaisseauSearchCriteria.class); criteres.setImmatriculation("%"); criteres.setModele("%"); criteres.setIntergalactique(true); List<VaisseauSummaryTo> vaisseaus = vaisseauDao.searchByCriteria(criteres); assertEquals(6, vaisseaus.size()); assertEquals("N7242C", vaisseaus.get(0).getImmatriculation()); assertEquals("Vipers Mark II", vaisseaus.get(0).getModele()); assertEquals("Alderaan", vaisseaus.get(0).getLocalisationHangar()); } @Test public void testGetByNumero() { VaisseauTo vaisseau = vaisseauDao.getByImmatriculation("Serenity"); assertNotNull(vaisseau); assertEquals("Serenity", vaisseau.getImmatriculation()); assertEquals(150000, vaisseau.getCapaciteDeFret()); assertEquals("Firefly", vaisseau.getModele()); assertEquals(8, vaisseau.getNombreDePassagers()); assertEquals(150000, vaisseau.getAutonomie()); assertEquals(95, vaisseau.getVitesse()); assertEquals(new Short((short) 0), vaisseau.getMultiplicateurHyperdrive()); } @Test public void testPersist_new() { VaisseauTo vaisseau = BeanUtils.instantiateClass(BasicVaisseauTo.class); vaisseau.setImmatriculation("immatriculation test"); vaisseau.setModele("modele test"); vaisseau.setCapaciteDeFret(10); vaisseau.setMultiplicateurHyperdrive(null); vaisseau.setNombreDePassagers((short) 100); vaisseau.setAutonomie(12); vaisseau.setVitesse(50); vaisseauDao.persist(vaisseau); } @Test public void testPersist_update() { VaisseauTo vaisseau = vaisseauDao.getByImmatriculation("Serenity"); vaisseau.setCapaciteDeFret(200000); vaisseauDao.persist(vaisseau); } @Test public void testRemove() { vaisseauDao.remove("Serenity"); } }