package org.transgalactica.management.data.materiel.dao; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.util.List; import javax.persistence.EntityManager; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.transaction.TransactionConfiguration; import org.springframework.test.util.ReflectionTestUtils; import org.springframework.transaction.annotation.Transactional; import org.transgalactica.management.data.materiel.TestConfig; import org.transgalactica.management.data.materiel.bo.VaisseauSearchCriteria; import org.transgalactica.management.data.materiel.bo.VaisseauSummary; import org.transgalactica.management.data.materiel.dao.impl.QueryDSLVaisseauDao; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = TestConfig.class) @TransactionConfiguration @Transactional(readOnly = true) public class QueryDSLVaisseauDaoTest { @Autowired private BeanFactory beanFactory; @Autowired private EntityManager em; private QueryDSLVaisseauDao vaisseauDao; @Before public void createQueryDSLVaisseauDao() { vaisseauDao = BeanUtils.instantiateClass(QueryDSLVaisseauDao.class); ReflectionTestUtils.setField(vaisseauDao, "em", em); } @Test public void testFindByCriteria() { VaisseauSearchCriteria criteres = beanFactory.getBean(VaisseauSearchCriteria.class); criteres.setImmatriculation("Faucon Millenium"); criteres.setIntergalactique(true); criteres.setModele("cargo YT-1300"); List<VaisseauSummary> vaisseaux = vaisseauDao.findByCriteria(criteres); assertNotNull(vaisseaux); assertEquals(1, vaisseaux.size()); assertEquals("Faucon Millenium", vaisseaux.get(0).getImmatriculationVaisseau()); assertEquals("cargo YT-1300", vaisseaux.get(0).getModeleVaisseau()); assertEquals("Alderaan", vaisseaux.get(0).getLocalisationHangar()); } @Test public void testFindByCriteria_SansHangars() { VaisseauSearchCriteria criteres = beanFactory.getBean(VaisseauSearchCriteria.class); criteres.setImmatriculation("%"); List<VaisseauSummary> vaisseaux = vaisseauDao.findByCriteria(criteres); assertNotNull(vaisseaux); assertEquals(6, vaisseaux.size()); } }