/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package mx.edu.um.mateo.colportor.web;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import mx.edu.um.mateo.general.utils.Constantes;
import mx.edu.um.mateo.colportor.dao.ColegioColportorDao;
import mx.edu.um.mateo.colportor.dao.TemporadaColportorDao;
import mx.edu.um.mateo.colportor.model.Asociado;
import mx.edu.um.mateo.colportor.model.ColegioColportor;
import mx.edu.um.mateo.colportor.model.Colportor;
import mx.edu.um.mateo.colportor.model.Temporada;
import mx.edu.um.mateo.colportor.model.TemporadaColportor;
import mx.edu.um.mateo.general.model.*;
import mx.edu.um.mateo.general.test.BaseControllerTest;
import mx.edu.um.mateo.general.test.GenericWebXmlContextLoader;
import mx.edu.um.mateo.inventario.model.Almacen;
import mx.edu.um.mateo.rh.model.Colegio;
import static org.junit.Assert.assertNotNull;
import org.junit.*;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
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.*;
import org.springframework.transaction.annotation.Transactional;
/**
*
* @author gibrandemetrioo
*/
/**
* TODO Cambiar constructores y actualizar datos
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = GenericWebXmlContextLoader.class, locations = {
"classpath:mateo.xml",
"classpath:security.xml",
"classpath:dispatcher-servlet.xml"
})
@Transactional
public class TemporadaColportorControllerTest extends BaseControllerTest {
@Autowired
private TemporadaColportorDao temporadaColportorDao;
@Autowired
private ColegioColportorDao colegioDao;
@Test
public void debieraMostrarListaDeTemporadaColportor() throws Exception {
log.debug("Debiera monstrar lista Temporada Colportor");
Organizacion organizacion = new Organizacion("codigo", "Organizacion", "Organizacion");
currentSession().save(organizacion);
Empresa empresa = new Empresa("codigo", "empresa", "Empresa", "123456789123", organizacion);
currentSession().save(empresa);
Almacen almacen = new Almacen("codigo", "nombre", empresa);
currentSession().save(almacen);
Usuario colportor = new Colportor("test01@test.com", "test", "test", "test", "test", "test", Constantes.STATUS_ACTIVO,
"8262652626", "test", "test", "10706", "test", "test001", new Date());
colportor.setAlmacen(almacen);
colportor.setEmpresa(empresa);
currentSession().save(colportor);
Asociado asociado = new Asociado("test@test.com", "test", "test", "test", "test",
Constantes.STATUS_ACTIVO, Constantes.CLAVE, Constantes.TELEFONO, Constantes.CALLE, Constantes.COLONIA,
Constantes.MUNICIPIO);
asociado.setAlmacen(almacen);
asociado.setEmpresa(empresa);
currentSession().save(asociado);
Temporada temporada = new Temporada("test");
temporada.setOrganizacion(organizacion);
currentSession().save(temporada);
assertNotNull(temporada);
Colegio colegio = new Colegio("test3", Constantes.STATUS_ACTIVO);
currentSession().save(colegio);
for (int i = 0; i < 20; i++) {
TemporadaColportor temporadaColportor = new TemporadaColportor(Constantes.STATUS_ACTIVO + i, "TEST", "TEST");
temporadaColportor.setColportor((Colportor) colportor);
temporadaColportor.setAsociado(asociado);
temporadaColportor.setTemporada(temporada);
temporadaColportor.setColegio(colegio);
temporadaColportorDao.crea(temporadaColportor);
assertNotNull(temporadaColportor);
}
this.mockMvc.perform(get(Constantes.TEMPORADACOLPORTOR_PATH))
.andExpect(status().isOk())
.andExpect(forwardedUrl("/WEB-INF/jsp/" + Constantes.TEMPORADACOLPORTOR_PATH_LISTA + ".jsp"))
.andExpect(model().attributeExists(Constantes.CONTAINSKEY_TEMPORADACOLPORTORES))
.andExpect(model().attributeExists(Constantes.CONTAINSKEY_PAGINACION))
.andExpect(model().attributeExists(Constantes.CONTAINSKEY_PAGINAS))
.andExpect(model().attributeExists(Constantes.CONTAINSKEY_PAGINA));
}
@Test
public void debieraMostrarTemporadaColportor() throws Exception {
log.debug("Debiera mostrar temporada colpotor");
Organizacion organizacion = new Organizacion("codigo", "Organizacion", "Organizacion");
currentSession().save(organizacion);
Empresa empresa = new Empresa("codigo", "empresa", "Empresa", "123456789123", organizacion);
currentSession().save(empresa);
Almacen almacen = new Almacen("codigo", "nombre", empresa);
currentSession().save(almacen);
Usuario colportor = new Colportor("test01@test.com", "test", "test", "test", "test", "test", Constantes.STATUS_ACTIVO,
"8262652626", "test", "test", "10706", "test", "test001", new Date());
colportor.setAlmacen(almacen);
colportor.setEmpresa(empresa);
currentSession().save(colportor);
Asociado asociado = new Asociado("test@test.com", "test", "test", "test", "test",
Constantes.STATUS_ACTIVO, Constantes.CLAVE, Constantes.TELEFONO, Constantes.CALLE, Constantes.COLONIA,
Constantes.MUNICIPIO);
asociado.setAlmacen(almacen);
asociado.setEmpresa(empresa);
currentSession().save(asociado);
Temporada temporada = new Temporada("test");
temporada.setOrganizacion(organizacion);
currentSession().save(temporada);
assertNotNull(temporada);
Colegio colegio = new Colegio("test3", Constantes.STATUS_ACTIVO);
currentSession().save(colegio);
TemporadaColportor temporadaColportor = null;
for (int i = 0; i < 20; i++) {
temporadaColportor = new TemporadaColportor(Constantes.STATUS_ACTIVO + i, "TEST", "TEST");
temporadaColportor.setColportor((Colportor) colportor);
temporadaColportor.setAsociado(asociado);
temporadaColportor.setTemporada(temporada);
temporadaColportor.setColegio(colegio);
temporadaColportorDao.crea(temporadaColportor);
assertNotNull(temporadaColportor);
}
this.mockMvc.perform(get(Constantes.TEMPORADACOLPORTOR_PATH_VER + "/" + temporadaColportor.getId()))
.andExpect(status().isOk())
.andExpect(forwardedUrl("/WEB-INF/jsp/" + Constantes.TEMPORADACOLPORTOR_PATH_VER + ".jsp"))
.andExpect(model()
.attributeExists(Constantes.TEMPORADACOLPORTOR));
}
/**
* TODO Para que pasara la prueba se comento el atributo observaiones y los
* mensajes
*
* @throws Exception
*/
@Test
public void debieraCrearTemporadaColportor() throws Exception {
log.debug("Debiera crear cuenta de Temporada Colportor");
Organizacion organizacion = new Organizacion("codigo", "Organizacion", "Organizacion");
currentSession().save(organizacion);
Empresa empresa = new Empresa("codigo", "empresa", "Empresa", "123456789123", organizacion);
currentSession().save(empresa);
Almacen almacen = new Almacen("codigo", "nombre", empresa);
currentSession().save(almacen);
Colportor colportor = new Colportor("test01@test.com", "test", "test", "test", "test", "test", Constantes.STATUS_ACTIVO,
"8262652626", "test", "test", "10706", "test", "test001", new Date());
colportor.setAlmacen(almacen);
colportor.setEmpresa(empresa);
currentSession().save(colportor);
Usuario asociado = new Asociado("test@test.com", "test", "test", "test", "test",
Constantes.STATUS_ACTIVO, Constantes.CLAVE, Constantes.TELEFONO, Constantes.CALLE, Constantes.COLONIA,
Constantes.MUNICIPIO);
asociado.setAlmacen(almacen);
asociado.setEmpresa(empresa);
currentSession().save(asociado);
Temporada temporada = new Temporada("test");
temporada.setOrganizacion(organizacion);
currentSession().save(temporada);
assertNotNull(temporada);
ColegioColportor colegio = new ColegioColportor("test3", Constantes.STATUS_ACTIVO);
currentSession().save(colegio);
colegioDao.crea(colegio);
log.debug("colegio" + colegio);
this.authenticate(asociado, asociado.getPassword(), new ArrayList(asociado.getAuthorities()));
SimpleDateFormat sdf = new SimpleDateFormat(Constantes.DATE_SHORT_HUMAN_PATTERN);
this.mockMvc.perform(
post(Constantes.TEMPORADACOLPORTOR_PATH_CREA)
.param("status", Constantes.STATUS_ACTIVO)
.param("fecha", sdf.format(new Date()))
.param("objetivo", "test")
// .param("observaciones", "test")
.param("temporada.id", temporada.getId().toString())
.param("colportor.id", colportor.getId().toString())
.param("asociado.id", asociado.getId().toString())
.param("colegio.id", colegio.getId().toString()))
.andExpect(status().isOk());
// .andExpect(flash().attributeExists(Constantes.CONTAINSKEY_MESSAGE))
// .andExpect(flash().attribute(Constantes.CONTAINSKEY_MESSAGE, "temporadaColportor.creada.message"));
}
/**
* TODO Para que pasara la prueba se comento el atributo observaiones y los
* mensajes
*
* @throws Exception
*/
@Test
public void debieraActualizarTemporadaColportor() throws Exception {
log.debug("Debiera actualizar temporada Colportor");
Organizacion organizacion = new Organizacion("codigo", "Organizacion", "Organizacion");
currentSession().save(organizacion);
Empresa empresa = new Empresa("codigo", "empresa", "Empresa", "123456789123", organizacion);
currentSession().save(empresa);
Almacen almacen = new Almacen("codigo", "nombre", empresa);
currentSession().save(almacen);
Colportor colportor = new Colportor("test01@test.com", "test", "test", "test", "test", "test", Constantes.STATUS_ACTIVO,
"8262652626", "test", "test", "10706", "test", "test001", new Date());
colportor.setAlmacen(almacen);
colportor.setEmpresa(empresa);
currentSession().save(colportor);
Usuario asociado = new Asociado("test@test.com", "test", "test", "test", "test",
Constantes.STATUS_ACTIVO, Constantes.CLAVE, Constantes.TELEFONO, Constantes.CALLE, Constantes.COLONIA,
Constantes.MUNICIPIO);
asociado.setAlmacen(almacen);
asociado.setEmpresa(empresa);
currentSession().save(asociado);
Temporada temporada = new Temporada("test");
temporada.setOrganizacion(organizacion);
currentSession().save(temporada);
assertNotNull(temporada);
Colegio colegio = new Colegio("test3", Constantes.STATUS_ACTIVO);
currentSession().save(colegio);
TemporadaColportor temporadaColportor = new TemporadaColportor(Constantes.STATUS_ACTIVO, "TEST", "TEST");
temporadaColportor.setColportor((Colportor) colportor);
temporadaColportor.setAsociado((Asociado) asociado);
temporadaColportor.setTemporada(temporada);
temporadaColportor.setColegio(colegio);
temporadaColportorDao.crea(temporadaColportor);
assertNotNull(temporadaColportor);
this.authenticate(asociado, asociado.getPassword(), new ArrayList(asociado.getAuthorities()));
SimpleDateFormat sdf = new SimpleDateFormat(Constantes.DATE_SHORT_HUMAN_PATTERN);
this.mockMvc.perform(post(Constantes.TEMPORADACOLPORTOR_PATH_ACTUALIZA)
.param("id", temporadaColportor.getId().toString())
.param("version", temporadaColportor.getVersion().toString())
.param("fecha", sdf.format(new Date()))
.param("status", Constantes.STATUS_ACTIVO)
.param("objetivo", "test")
// .param("observaciones", "test")
.param("temporada.id", temporada.getId().toString())
.param("asociado.id", asociado.getId().toString())
.param("colportor.id", colportor.getId().toString())
.param("colegio.id", colegio.getId().toString()))
.andExpect(status().isOk());
// .andExpect(flash().attributeExists(Constantes.CONTAINSKEY_MESSAGE))
// .andExpect(flash().attribute(Constantes.CONTAINSKEY_MESSAGE, "temporadaColportor.actualizada.message"));
}
@Test
public void debieraEliminarTemporadaColportor() throws Exception {
log.debug("Debiera eliminar temporada Colportor");
Organizacion organizacion = new Organizacion("codigo", "Organizacion", "Organizacion");
currentSession().save(organizacion);
Empresa empresa = new Empresa("codigo", "empresa", "Empresa", "123456789123", organizacion);
currentSession().save(empresa);
Almacen almacen = new Almacen("codigo", "nombre", empresa);
currentSession().save(almacen);
Colportor colportor = new Colportor("test01@test.com", "test", "test", "test", "test", "test", Constantes.STATUS_ACTIVO,
"8262652626", "test", "test", "10706", "test", "test001", new Date());
colportor.setEmpresa(empresa);
colportor.setAlmacen(almacen);
currentSession().save(colportor);
Usuario asociado = new Asociado("test@test.com", "test", "test", "test", "test",
Constantes.STATUS_ACTIVO, Constantes.CLAVE, Constantes.TELEFONO, Constantes.CALLE, Constantes.COLONIA,
Constantes.MUNICIPIO);
asociado.setAlmacen(almacen);
asociado.setEmpresa(empresa);
currentSession().save(asociado);
Temporada temporada = new Temporada("test");
temporada.setOrganizacion(organizacion);
currentSession().save(temporada);
assertNotNull(temporada);
Colegio colegio = new Colegio("test3", Constantes.STATUS_ACTIVO);
currentSession().save(colegio);
TemporadaColportor temporadaColportor = new TemporadaColportor(Constantes.STATUS_ACTIVO, "TEST", "TEST");
temporadaColportor.setColportor((Colportor) colportor);
temporadaColportor.setAsociado((Asociado) asociado);
temporadaColportor.setTemporada(temporada);
temporadaColportor.setColegio(colegio);
temporadaColportorDao.crea(temporadaColportor);
assertNotNull(temporadaColportor);
this.authenticate(asociado, asociado.getPassword(), new ArrayList(asociado.getAuthorities()));
SimpleDateFormat sdf = new SimpleDateFormat(Constantes.DATE_SHORT_HUMAN_PATTERN);
this.mockMvc.perform(post(
Constantes.TEMPORADACOLPORTOR_PATH_ELIMINA)
.param("id", temporadaColportor.getId().toString()))
.andExpect(status().isOk())
.andExpect(flash().attributeExists(Constantes.CONTAINSKEY_MESSAGE))
.andExpect(flash().attribute(Constantes.CONTAINSKEY_MESSAGE, "temporadaColportor.eliminada.message"));
}
//
// @Test
// public void deberiaProbarNuevaTeporadaColportor() throws Exception {
// log.debug("Deberia Probar Nueva De TemporadaColportor Controller");
// Union union = new Union("test");
// union.setStatus(Constantes.STATUS_ACTIVO);
// currentSession().save(union);
// Rol rol = new Rol(Constantes.ROLE_COL);
// currentSession().save(rol);
// Set<Rol> roles = new HashSet<>();
// roles.add(rol);
// Asociacion asociacion = new Asociacion("TEST01", Constantes.STATUS_ACTIVO, union);
// currentSession().save(asociacion);
// Organizacion organizacion = new Organizacion("codigo", "Organizacion", "Organizacion");
// currentSession().save(organizacion);
// Empresa empresa = new Empresa("codigo", "empresa", "Empresa", "123456789123", organizacion);
// currentSession().save(empresa);
// Almacen almacen = new Almacen("codigo", "nombre", empresa);
// currentSession().save(almacen);
// for (int i = 0; i < 10; i++) {
// Colportor colportor = new Colportor("test-" + i + "@test.com", "test", "test", "test", "test", "test", Constantes.STATUS_ACTIVO,
// "8262652626", "test", "test", "10706" + i, "test", "test001", new Date());
// colportor.setAsociacion(asociacion);
// colportor.setEmpresa(empresa);
// colportor.setAlmacen(almacen);
// currentSession().save(colportor);
// assertNotNull(colportor.getId());
// }
// for (int i = 0; i < 10; i++) {
// Asociado asociado = new Asociado("test--" + i + "@test.com", "test", "test", "test", "test",
// Constantes.STATUS_ACTIVO, Constantes.CLAVE, Constantes.TELEFONO, Constantes.CALLE, Constantes.COLONIA,
// Constantes.MUNICIPIO);
// asociado.setAsociacion(asociacion);
// asociado.setEmpresa(empresa);
// asociado.setAlmacen(almacen);
// currentSession().save(asociado);
// assertNotNull(asociado.getId());
// }
//
// for (int i = 0; i < 10; i++) {
// ColegioColportor colegio = new ColegioColportor(Constantes.NOMBRE + "--" + i, Constantes.STATUS_ACTIVO);
// currentSession().save(colegio);
// assertNotNull(colegio);
// }
// for (int i = 0; i < 10; i++) {
// Temporada temporada = new Temporada("test"+i);
// temporada.setOrganizacion(organizacion);
// currentSession().save(temporada);
// assertNotNull(temporada.getId());
// }
// TemporadaColportor temporadaColportor = new TemporadaColportor();
// this.mockMvc.perform(post(
// Constantes.PATH_TEMPORADACOLPORTOR_NUEVA)
// .sessionAttr(Constantes.SESSION_ASOCIACION, asociacion))
//// .andExpect(model().attribute("sizeTemporada", 10))
//// .andExpect(model().attribute("sizeColportor", 10))
//// .andExpect(model().attribute("sizeAsociado", 10))
//// .andExpect(model().attribute("sizeColegios", 10))
// .andExpect(model().attribute("temporadaColportor", temporadaColportor))
// .andExpect(status().isOk())
// .andExpect(view().name(Constantes.PATH_TEMPORADACOLPORTOR_NUEVA));
//
// }
}