/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package mx.edu.um.mateo.inscripciones.web;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
import mx.edu.um.mateo.general.model.Empresa;
import mx.edu.um.mateo.general.model.Organizacion;
import mx.edu.um.mateo.general.model.Rol;
import mx.edu.um.mateo.general.model.Usuario;
import mx.edu.um.mateo.general.test.BaseControllerTest;
import mx.edu.um.mateo.general.test.GenericWebXmlContextLoader;
import mx.edu.um.mateo.general.utils.Constantes;
import mx.edu.um.mateo.inscripciones.model.AlumnoPaquete;
import mx.edu.um.mateo.inscripciones.model.Paquete;
import mx.edu.um.mateo.inventario.model.Almacen;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import static org.springframework.test.web.server.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.server.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.server.result.MockMvcResultMatchers.flash;
import static org.springframework.test.web.server.result.MockMvcResultMatchers.forwardedUrl;
import static org.springframework.test.web.server.result.MockMvcResultMatchers.model;
import static org.springframework.test.web.server.result.MockMvcResultMatchers.redirectedUrl;
import static org.springframework.test.web.server.result.MockMvcResultMatchers.status;
import org.springframework.transaction.annotation.Transactional;
/**
*
* @author semdariobarbaamaya
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = GenericWebXmlContextLoader.class, locations = {
"classpath:mateo.xml",
"classpath:security.xml",
"classpath:dispatcher-servlet.xml"
})
@Transactional
public class AlumnoPaqueteControllerTest extends BaseControllerTest{
@Test
public void testListaDeAlumnoPaquete() throws Exception {
log.debug("test mostrar lista de AlumnoPaquete");
Usuario usuario = obtieneUsuario();
Paquete paquete = null;
for (int i = 0; i < 20; i++) {
paquete = new Paquete();
paquete.setAcfe("a");
paquete.setDescripcion("test");
paquete.setEmpresa(usuario.getEmpresa());
paquete.setEnsenanza(new BigDecimal("80"));
paquete.setInternado(new BigDecimal("80"));
paquete.setMatricula(new BigDecimal("80"));
paquete.setNombre("test");
currentSession().save(paquete);
assertNotNull(paquete.getId());
}
this.mockMvc.perform(
get(Constantes.PATH_ALUMNOPAQUETE))
.andExpect(status().isOk())
.andExpect(forwardedUrl("/WEB-INF/jsp/inscripciones/alumnoPaquete/lista.jsp"))
.andExpect(model().attributeExists("alumnoPaquetes"))
.andExpect(model().attributeExists("paginacion"))
.andExpect(model().attributeExists("paginas"))
.andExpect(model().attributeExists("pagina"));
}
@Test
public void testEditaAlumnoPaquete() throws Exception {
Usuario usuario = obtieneUsuario();
Paquete paquete = new Paquete("Test","Test1",new BigDecimal("1110475"), new BigDecimal(12), new BigDecimal(12),"1", usuario.getEmpresa());
currentSession().save(paquete);
AlumnoPaquete alumnoPaquete = new AlumnoPaquete();
alumnoPaquete.setPaquete(paquete);
alumnoPaquete.setMatricula("1110475");
alumnoPaquete.setStatus("A");
currentSession().save(alumnoPaquete);
assertNotNull(alumnoPaquete.getId());
Long id = alumnoPaquete.getId();
this.mockMvc.perform(
get(Constantes.PATH_ALUMNOPAQUETE_EDITA + "/" + id))
.andExpect(status().isOk())
.andExpect(forwardedUrl("/WEB-INF/jsp/" + Constantes.PATH_ALUMNOPAQUETE_EDITA + ".jsp"))
.andExpect(model().attributeExists(Constantes.CONTAINSKEY_PAQUETES))
.andExpect(model().attributeExists("alumnoPaquete"));
}
@Test
public void testNuevoDeAlumnoPaquete() throws Exception {
log.debug("test Nuevo de AlumnoPaquete");
this.mockMvc.perform(
get(Constantes.PATH_ALUMNOPAQUETE_NUEVO))
.andExpect(status().isOk())
.andExpect(forwardedUrl("/WEB-INF/jsp/" + Constantes.PATH_ALUMNOPAQUETE_NUEVO + ".jsp"))
.andExpect(model().attributeExists(Constantes.CONTAINSKEY_PAQUETES))
.andExpect(model().attributeExists("alumnoPaquete"));
}
@Test
public void testVerAlumnoPaquete() throws Exception {
log.debug("test ver alumnoPaquete");
Usuario usuario = obtieneUsuario();
Paquete paquete = new Paquete("Test","Test1",new BigDecimal("1110475"), new BigDecimal(12), new BigDecimal(12),"1", usuario.getEmpresa());
currentSession().save(paquete);
AlumnoPaquete alumnoPaquete = new AlumnoPaquete();
alumnoPaquete.setPaquete(paquete);
alumnoPaquete.setMatricula("1110475");
alumnoPaquete.setStatus("A");
currentSession().save(alumnoPaquete);
assertNotNull(alumnoPaquete.getId());
Long id = alumnoPaquete.getId();
this.mockMvc.perform(get("/" + Constantes.PATH_ALUMNOPAQUETE_VER + "/" + id))
.andExpect(status().isOk())
.andExpect(forwardedUrl("/WEB-INF/jsp/inscripciones/alumnoPaquete/ver.jsp"))
.andExpect(model().attributeExists("alumnoPaquete"));
}
@Test
public void testCreaAlumnoPaquete() throws Exception {
Usuario usuario = obtieneUsuario();
Paquete paquete = new Paquete("Test","Test1",new BigDecimal("1110475"), new BigDecimal(12), new BigDecimal(12),"1", usuario.getEmpresa());
currentSession().save(paquete);
AlumnoPaquete alumnoPaquete = new AlumnoPaquete();
alumnoPaquete.setPaquete(paquete);
alumnoPaquete.setMatricula("1110475");
alumnoPaquete.setStatus("A");
currentSession().save(alumnoPaquete);
assertNotNull(alumnoPaquete.getId());
this.authenticate(usuario, usuario.getPassword(), new ArrayList<GrantedAuthority>(usuario.getRoles()));
this.mockMvc.perform(post(Constantes.PATH_ALUMNOPAQUETE_GRABA)
.param("paquete.id", paquete.getId().toString())
.param("matricula", "1110475")
.param("status", "A"))
.andExpect(status().isOk())
.andExpect(flash().attributeExists("message"))
.andExpect(flash().attribute("message", "alumnoPaquete.creado.message"));
}
@Test
public void testActualizaAlumnoPaquete() throws Exception {
Usuario usuario = obtieneUsuario();
Paquete paquete = new Paquete("Test","Test1",new BigDecimal("1110475"), new BigDecimal(12), new BigDecimal(12),"1", usuario.getEmpresa());
currentSession().save(paquete);
AlumnoPaquete alumnoPaquete = new AlumnoPaquete();
alumnoPaquete.setPaquete(paquete);
alumnoPaquete.setMatricula("1110475");
alumnoPaquete.setStatus("A");
currentSession().save(alumnoPaquete);
assertNotNull(alumnoPaquete.getId());
this.authenticate(usuario, usuario.getPassword(), new ArrayList<GrantedAuthority>(usuario.getRoles()));
this.mockMvc.perform(post(Constantes.PATH_ALUMNOPAQUETE_GRABA)
.param("paquete.id", paquete.getId().toString())
.param("matricula", "1090687")
.param("status", "A")
.param("version", alumnoPaquete.getVersion().toString())
.param("id", alumnoPaquete.getId().toString()))
.andExpect(status().isOk())
.andExpect(flash().attributeExists("message"))
.andExpect(flash().attribute("message", "alumnoPaquete.actualizado.message"));
currentSession().refresh(alumnoPaquete);
log.debug("{}",alumnoPaquete);
assertEquals("1090687", alumnoPaquete.getMatricula());
}
@Test
public void testEliminarAlumnoPaquete() throws Exception {
log.debug("test eliminar alumnoPaquete");
Usuario usuario = obtieneUsuario();
Paquete paquete = new Paquete("Test","Test1",new BigDecimal("1110475"), new BigDecimal(12), new BigDecimal(12),"1", usuario.getEmpresa());
currentSession().save(paquete);
AlumnoPaquete alumnoPaquete = new AlumnoPaquete();
alumnoPaquete.setPaquete(paquete);
alumnoPaquete.setMatricula("1110475");
alumnoPaquete.setStatus("A");
currentSession().save(alumnoPaquete);
assertNotNull(alumnoPaquete.getId());
this.mockMvc.perform(post(Constantes.PATH_ALUMNOPAQUETE_ELIMINA)
.param("id", alumnoPaquete.getId().toString()))
.andExpect(flash().attributeExists(Constantes.CONTAINSKEY_MESSAGE))
.andExpect(flash().attribute(Constantes.CONTAINSKEY_MESSAGE, "alumnoPaquete.eliminado.message"))
.andExpect(redirectedUrl("/"+Constantes.PATH_ALUMNOPAQUETE_LISTA));
}
}