/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package mx.edu.um.mateo.inscripciones.dao;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import mx.edu.um.mateo.general.model.Usuario;
import mx.edu.um.mateo.general.test.BaseDaoTest;
import mx.edu.um.mateo.general.utils.Constantes;
import mx.edu.um.mateo.inscripciones.model.AFEBecaAdicional;
import mx.edu.um.mateo.inscripciones.model.Paquete;
import mx.edu.um.mateo.inscripciones.model.TiposBecas;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.ObjectRetrievalFailureException;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
import static org.junit.Assert.*;
/**
*
* @author develop
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:mateo.xml", "classpath:security.xml"})
@Transactional
public class AFEBecaAdicionalDaoTest extends BaseDaoTest {
@Autowired
private AFEBecaAdicionalDao instance;
/**
* Prueba la lista de paquetes
*/
@Test
public void testLista() {
Usuario usuario = obtieneUsuario();
AFEBecaAdicional becaAdicional = null;
TiposBecas tiposBecas = new TiposBecas();
tiposBecas.setDescripcion("test");
tiposBecas.setDiezma(true);
tiposBecas.setNumHoras(320);
tiposBecas.setPerteneceAlumno(false);
tiposBecas.setPorcentaje(new BigDecimal(320));
tiposBecas.setSoloPostgrado(false);
tiposBecas.setStatus("a");
tiposBecas.setTope(new BigDecimal(350));
tiposBecas.setEmpresa(usuario.getEmpresa());
currentSession().save(tiposBecas);
for (int i = 0; i < 20; i++) {
becaAdicional = new AFEBecaAdicional();
becaAdicional.setEmpresa(usuario.getEmpresa());
becaAdicional.setFechaAlta(new Date());
becaAdicional.setImporte(new BigDecimal("20.8"));
becaAdicional.setMatricula("1110475");
becaAdicional.setStatus("A");
becaAdicional.setUsuarioAlta(usuario);
becaAdicional.setTipoBeca(tiposBecas);
instance.crea(becaAdicional, usuario);
assertNotNull(becaAdicional.getId());
}
Map<String, Object> params;
params = new TreeMap<>();
params.put("empresa", usuario.getEmpresa().getId());
Map<String, Object> result = instance.lista(params);
assertNotNull(result.get(Constantes.CONTAINSKEY_BECASADICIONALES));
assertNotNull(result.get(Constantes.CONTAINSKEY_CANTIDAD));
assertEquals(10, ((List<AFEBecaAdicional>) result.get(Constantes.CONTAINSKEY_BECASADICIONALES)).size());
assertEquals(20, ((Long) result.get(Constantes.CONTAINSKEY_CANTIDAD)).intValue());
}
/**
* Prueba el obtener un paquete
*/
@Test
public void testObtiene() {
Usuario usuario = obtieneUsuario();
String matricula = "1110475";
TiposBecas tiposBecas = new TiposBecas();
tiposBecas.setDescripcion("test");
tiposBecas.setDiezma(true);
tiposBecas.setNumHoras(320);
tiposBecas.setPerteneceAlumno(false);
tiposBecas.setPorcentaje(new BigDecimal(320));
tiposBecas.setSoloPostgrado(false);
tiposBecas.setStatus("a");
tiposBecas.setTope(new BigDecimal(350));
tiposBecas.setEmpresa(usuario.getEmpresa());
currentSession().save(tiposBecas);
AFEBecaAdicional becaAdicional = new AFEBecaAdicional();
becaAdicional.setEmpresa(usuario.getEmpresa());
becaAdicional.setFechaAlta(new Date());
becaAdicional.setImporte(new BigDecimal("20.8"));
becaAdicional.setMatricula(matricula);
becaAdicional.setStatus("A");
becaAdicional.setUsuarioAlta(usuario);
becaAdicional.setTipoBeca(tiposBecas);
instance.crea(becaAdicional, usuario);
assertNotNull(becaAdicional.getId());
AFEBecaAdicional becaAdicional1 = instance.obtiene(becaAdicional.getId());
assertEquals(becaAdicional.getMatricula(), becaAdicional1.getMatricula());
}
/**
* Prueba el proceso de creacion del paquete
*/
@Test
public void testCrea() {
Usuario usuario = obtieneUsuario();
String matricula = "1110475";
TiposBecas tiposBecas = new TiposBecas();
tiposBecas.setDescripcion("test");
tiposBecas.setDiezma(true);
tiposBecas.setNumHoras(320);
tiposBecas.setPerteneceAlumno(false);
tiposBecas.setPorcentaje(new BigDecimal(320));
tiposBecas.setSoloPostgrado(false);
tiposBecas.setStatus("a");
tiposBecas.setTope(new BigDecimal(350));
tiposBecas.setEmpresa(usuario.getEmpresa());
currentSession().save(tiposBecas);
AFEBecaAdicional becaAdicional = new AFEBecaAdicional();
becaAdicional.setEmpresa(usuario.getEmpresa());
becaAdicional.setFechaAlta(new Date());
becaAdicional.setUsuarioAlta(usuario);
becaAdicional.setImporte(new BigDecimal("20.8"));
becaAdicional.setMatricula(matricula);
becaAdicional.setStatus("A");
becaAdicional.setTipoBeca(tiposBecas);
instance.crea(becaAdicional, usuario);
assertNotNull(becaAdicional.getId());
AFEBecaAdicional becaAdicional1 = instance.obtiene(becaAdicional.getId());
assertEquals(becaAdicional.getMatricula(), becaAdicional1.getMatricula());
}
/**
* Prueba el proceso de actualizacion
*/
@Test
public void testActualiza() {
Usuario usuario = obtieneUsuario();
String matricula = "1110475";
TiposBecas tiposBecas = new TiposBecas();
tiposBecas.setDescripcion("test");
tiposBecas.setDiezma(true);
tiposBecas.setNumHoras(320);
tiposBecas.setPerteneceAlumno(false);
tiposBecas.setPorcentaje(new BigDecimal(320));
tiposBecas.setSoloPostgrado(false);
tiposBecas.setStatus("a");
tiposBecas.setTope(new BigDecimal(350));
tiposBecas.setEmpresa(usuario.getEmpresa());
currentSession().save(tiposBecas);
AFEBecaAdicional becaAdicional = new AFEBecaAdicional();
becaAdicional.setEmpresa(usuario.getEmpresa());
becaAdicional.setFechaAlta(new Date());
becaAdicional.setImporte(new BigDecimal("20.8"));
becaAdicional.setMatricula(matricula);
becaAdicional.setStatus("A");
becaAdicional.setUsuarioAlta(usuario);
becaAdicional.setTipoBeca(tiposBecas);
instance.crea(becaAdicional, usuario);
assertNotNull(becaAdicional.getId());
AFEBecaAdicional becaAdicional1 = instance.obtiene(becaAdicional.getId());
assertEquals(becaAdicional.getMatricula(), becaAdicional1.getMatricula());
becaAdicional1.setMatricula("1110476");
instance.actualiza(becaAdicional1, usuario);
currentSession().refresh(becaAdicional);
assertEquals("1110476", becaAdicional.getMatricula());
}
/**
* Prueba el eliminar el paquete
*/
@Test
public void testElimina() {
Usuario usuario = obtieneUsuario();
TiposBecas tiposBecas = new TiposBecas();
tiposBecas.setDescripcion("test");
tiposBecas.setDiezma(true);
tiposBecas.setNumHoras(320);
tiposBecas.setPerteneceAlumno(false);
tiposBecas.setPorcentaje(new BigDecimal(320));
tiposBecas.setSoloPostgrado(false);
tiposBecas.setStatus("a");
tiposBecas.setTope(new BigDecimal(350));
tiposBecas.setEmpresa(usuario.getEmpresa());
currentSession().save(tiposBecas);
AFEBecaAdicional becaAdicional = new AFEBecaAdicional();
becaAdicional.setEmpresa(usuario.getEmpresa());
becaAdicional.setFechaAlta(new Date());
becaAdicional.setImporte(new BigDecimal("20.8"));
becaAdicional.setMatricula("1110475");
becaAdicional.setStatus("A");
becaAdicional.setTipoBeca(tiposBecas);
becaAdicional.setUsuarioAlta(usuario);
instance.crea(becaAdicional, usuario);
assertNotNull(becaAdicional.getId());
String matricula = instance.elimina(becaAdicional.getId());
assertEquals(becaAdicional.getMatricula(), matricula);
if ("A".equals(becaAdicional.getStatus())) {
fail("Se encontro cobroCampo " + becaAdicional);
} else {
log.debug("Se elimino con exito el Cobro Campo {}", matricula);
}
}
}