/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
* TODO problemas con nullpointerexception
*/
package mx.edu.um.mateo.colportor.test;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import mx.edu.um.mateo.colportor.dao.DocumentoDao;
import static mx.edu.um.mateo.colportor.dao.DocumentoDaoTest.FOLIO;
import static mx.edu.um.mateo.colportor.dao.DocumentoDaoTest.IMPORTE;
import static mx.edu.um.mateo.colportor.dao.DocumentoDaoTest.OBSERVACIONES;
import static mx.edu.um.mateo.colportor.dao.DocumentoDaoTest.TIPO_DOCUMENTO;
import mx.edu.um.mateo.colportor.dao.TemporadaColportorDao;
import mx.edu.um.mateo.colportor.model.Asociado;
import mx.edu.um.mateo.colportor.model.Colportor;
import mx.edu.um.mateo.colportor.model.Documento;
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.general.utils.Constantes;
import mx.edu.um.mateo.rh.model.Colegio;
import org.junit.*;
import static org.junit.Assert.*;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
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.*;
import org.springframework.transaction.annotation.Transactional;
/**
*
* @author osoto
Para estas pruebas, se existen las siguientes pre-condiciones:
- El colportor ya esta logueado, y por lo tanto es facil obtenerlo del ambiente
- La captura de cada documento, traera como parametro de entrada la temporada.id
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = GenericWebXmlContextLoader.class, locations = {
"classpath:mateo.xml",
"classpath:security.xml",
"classpath:dispatcher-servlet.xml"
})
@Transactional
public class DocumentoControllerTest extends BaseControllerTest {
@Autowired
private DocumentoDao documentoDao;
@Autowired
private TemporadaColportorDao temporadaColportorDao;
@Test
public void testListaAlColportor() throws Exception {
log.debug("Debiera monstrar lista de documentos");
Usuario colportor = obtieneColportor();
Usuario asociado = obtieneAsociado(colportor);
Temporada temporada = new Temporada("test");
temporada.setOrganizacion(asociado.getEmpresa().getOrganizacion());
currentSession().save(temporada);
assertNotNull(temporada.getId());
Colegio colegio = new Colegio("UM", 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);
temporadaColportor.setObjetivo("2000");
currentSession().save(temporadaColportor);
assertNotNull(temporadaColportor.getId());
for (int i = 0; i < 20; i++) {
Documento documento = new Documento(TIPO_DOCUMENTO, FOLIO, new Date(), IMPORTE, OBSERVACIONES,
temporadaColportor);
currentSession().save(documento);
assertNotNull(documento);
}
authenticate(colportor, colportor.getPassword(), new ArrayList <GrantedAuthority> (colportor.getRoles()));
this.mockMvc.perform(get(Constantes.DOCUMENTOCOLPORTOR_PATH_LISTA)
.param("clave", "54321")
.param("temporada.id", temporada.getId().toString()))
.andExpect(model().attributeExists(Constantes.DOCUMENTOCOLPORTOR_LIST))
.andExpect(forwardedUrl("/WEB-INF/jsp/"+Constantes.DOCUMENTOCOLPORTOR_PATH_LISTA+".jsp"));
}
@Test
public void testListaAlColportorSinTemporadaActiva() throws Exception {
log.debug("Debiera monstrar lista de documentos de un colportor que no esta en ninguna temporada");
Usuario colportor = obtieneColportor();
Usuario asociado = obtieneAsociado(colportor);
Temporada temporada = new Temporada("test");
temporada.setOrganizacion(asociado.getEmpresa().getOrganizacion());
currentSession().save(temporada);
assertNotNull(temporada.getId());
Colegio colegio = new Colegio("UM", Constantes.STATUS_ACTIVO);
currentSession().save(colegio);
TemporadaColportor temporadaColportor = new TemporadaColportor(Constantes.STATUS_INACTIVO, "TEST", "TEST");
temporadaColportor.setColportor((Colportor) colportor);
temporadaColportor.setAsociado((Asociado) asociado);
temporadaColportor.setTemporada(temporada);
temporadaColportor.setColegio(colegio);
temporadaColportor.setObjetivo("2000");
currentSession().save(temporadaColportor);
assertNotNull(temporadaColportor.getId());
for (int i = 0; i < 20; i++) {
Documento documento = new Documento(TIPO_DOCUMENTO, FOLIO, new Date(), IMPORTE, OBSERVACIONES,
temporadaColportor);
currentSession().save(documento);
assertNotNull(documento);
}
authenticate(colportor, colportor.getPassword(), new ArrayList <GrantedAuthority> (colportor.getRoles()));
this.mockMvc.perform(get(Constantes.DOCUMENTOCOLPORTOR_PATH_LISTA)
.param("clave", "54321")
.param("temporada.id", temporada.getId().toString()))
.andExpect(forwardedUrl("/WEB-INF/jsp/"+Constantes.DOCUMENTOCOLPORTOR_PATH_LISTA+".jsp"));
}
@Test
public void testListaAlColportorCambiaTemporada() throws Exception {
log.debug("Debiera monstrar lista de documentos de un colportor qeu no esta en ninguna temporada");
Usuario colportor = obtieneColportor();
Usuario asociado = obtieneAsociado(colportor);
Temporada temporada = new Temporada("test");
temporada.setOrganizacion(asociado.getEmpresa().getOrganizacion());
currentSession().save(temporada);
assertNotNull(temporada.getId());
Temporada temporada2 = new Temporada("test");
temporada2.setOrganizacion(asociado.getEmpresa().getOrganizacion());
currentSession().save(temporada2);
assertNotNull(temporada2.getId());
Colegio colegio = new Colegio("UM", Constantes.STATUS_ACTIVO);
currentSession().save(colegio);
TemporadaColportor temporadaColportor = new TemporadaColportor(Constantes.STATUS_INACTIVO, "TEST", "TEST");
temporadaColportor.setColportor((Colportor) colportor);
temporadaColportor.setAsociado((Asociado) asociado);
temporadaColportor.setTemporada(temporada);
temporadaColportor.setColegio(colegio);
temporadaColportor.setObjetivo("2000");
currentSession().save(temporadaColportor);
assertNotNull(temporadaColportor.getId());
for (int i = 0; i < 20; i++) {
Documento documento = new Documento(TIPO_DOCUMENTO, FOLIO, new Date(), IMPORTE, OBSERVACIONES,
temporadaColportor);
currentSession().save(documento);
assertNotNull(documento);
}
TemporadaColportor temporadaColportor2 = new TemporadaColportor(Constantes.STATUS_INACTIVO, "TEST", "TEST");
temporadaColportor2.setColportor((Colportor) colportor);
temporadaColportor2.setAsociado((Asociado) asociado);
temporadaColportor2.setTemporada(temporada2);
temporadaColportor2.setColegio(colegio);
temporadaColportor2.setObjetivo("2000");
currentSession().save(temporadaColportor2);
assertNotNull(temporadaColportor2.getId());
for (int i = 0; i < 20; i++) {
Documento documento = new Documento(TIPO_DOCUMENTO, FOLIO, new Date(), IMPORTE, OBSERVACIONES,
temporadaColportor2);
currentSession().save(documento);
assertNotNull(documento);
}
authenticate(colportor, colportor.getPassword(), new ArrayList <GrantedAuthority> (colportor.getRoles()));
this.mockMvc.perform(get(Constantes.DOCUMENTOCOLPORTOR_PATH_LISTA)
.param("clave", "54321")
.param("temporada.id", temporada.getId().toString()))
.andExpect(forwardedUrl("/WEB-INF/jsp/"+Constantes.DOCUMENTOCOLPORTOR_PATH_LISTA+".jsp"));
log.debug("terminaPrimerLlamada");
this.mockMvc.perform(get(Constantes.DOCUMENTOCOLPORTOR_PATH_LISTA)
.param("clave", "54321")
.param("temporada.id", temporada2.getId().toString()))
.andExpect(forwardedUrl("/WEB-INF/jsp/"+Constantes.DOCUMENTOCOLPORTOR_PATH_LISTA+".jsp"));
log.debug("terminaSegundaLlamada");
}
@Test
public void testListaVaciaAlAsociado() throws Exception {
log.debug("Debiera monstrar lista de documentos de un colportor al asociado");
Usuario colportor = obtieneColportor();
Usuario asociado = obtieneAsociado(colportor);
Temporada temporada = new Temporada("test");
temporada.setOrganizacion(asociado.getEmpresa().getOrganizacion());
currentSession().save(temporada);
assertNotNull(temporada.getId());
Colegio colegio = new Colegio("UM", 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);
temporadaColportor.setObjetivo("2000");
currentSession().save(temporadaColportor);
assertNotNull(temporadaColportor.getId());
authenticate(asociado, asociado.getPassword(), new ArrayList <GrantedAuthority> (asociado.getRoles()));
this.mockMvc.perform(get(Constantes.DOCUMENTOCOLPORTOR_PATH_LISTA)
.param("temporada.id", temporada.getId().toString())
.param("clave", "5678"))
.andExpect(forwardedUrl("/WEB-INF/jsp/"+Constantes.DOCUMENTOCOLPORTOR_PATH_LISTA+".jsp"));
}
@Test
public void testListaAlAsociado() throws Exception {
log.debug("Mostrando documentos de un colportor seleccionado por su clave");
Usuario asociado = obtieneAsociado();
Usuario colportor = obtieneColportor(asociado, "5678");
Temporada temporada = new Temporada("test");
temporada.setOrganizacion(asociado.getEmpresa().getOrganizacion());
currentSession().save(temporada);
assertNotNull(temporada.getId());
Colegio colegio = new Colegio("UM", 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);
temporadaColportor.setObjetivo("2000");
currentSession().save(temporadaColportor);
assertNotNull(temporadaColportor.getId());
for (int i = 0; i < 20; i++) {
Documento documento = new Documento(Constantes.TIPO_DOCUMENTO, Constantes.FOLIO,
new Date(), Constantes.IMPORTE, Constantes.OBSERVACIONES, null);
documento.setTemporadaColportor(temporadaColportor);
documentoDao.crea(documento);
assertNotNull(documento);
}
authenticate(asociado, asociado.getPassword(), new ArrayList <GrantedAuthority> (asociado.getRoles()));
this.mockMvc.perform(post(Constantes.DOCUMENTOCOLPORTOR_PATH_LISTA)
.param("temporada.id", temporada.getId().toString())
.param("clave", "5678"))
.andExpect(forwardedUrl("/WEB-INF/jsp/"+Constantes.DOCUMENTOCOLPORTOR_PATH_LISTA+".jsp"))
//.andExpect(model().attributeExists(Constantes.TEMPORADACOLPORTAJE_LIST))
.andExpect(model().attributeExists(Constantes.DOCUMENTOCOLPORTOR_LIST))
.andExpect(model().attributeExists(Constantes.CONTAINSKEY_PAGINACION))
.andExpect(model().attributeExists(Constantes.CONTAINSKEY_PAGINAS))
.andExpect(model().attributeExists(Constantes.CONTAINSKEY_PAGINA));
}
@Test
public void testListaAlAsociadoSinClave() throws Exception {
log.debug("Se valida que regrese un error, ya que no se proporciono la clave del colportor");
Usuario asociado = obtieneAsociado();
Usuario colportor = obtieneColportor(asociado, "5678");
Temporada temporada = new Temporada("test");
temporada.setOrganizacion(asociado.getEmpresa().getOrganizacion());
currentSession().save(temporada);
assertNotNull(temporada.getId());
Colegio colegio = new Colegio("UM", 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);
temporadaColportor.setObjetivo("2000");
currentSession().save(temporadaColportor);
assertNotNull(temporadaColportor.getId());
for (int i = 0; i < 20; i++) {
Documento documento = new Documento(Constantes.TIPO_DOCUMENTO, Constantes.FOLIO,
new Date(), Constantes.IMPORTE, Constantes.OBSERVACIONES, null);
documento.setTemporadaColportor(temporadaColportor);
documentoDao.crea(documento);
assertNotNull(documento);
}
authenticate(asociado, asociado.getPassword(), new ArrayList <GrantedAuthority> (asociado.getRoles()));
this.mockMvc.perform(post(Constantes.DOCUMENTOCOLPORTOR_PATH_LISTA)
.param("temporada.id", temporada.getId().toString())
.param("clave", "5678"))
.andExpect(forwardedUrl("/WEB-INF/jsp/"+Constantes.DOCUMENTOCOLPORTOR_PATH_LISTA+".jsp"))
//.andExpect(model().attributeExists(Constantes.TEMPORADACOLPORTAJE_LIST))
.andExpect(model().attributeExists(Constantes.DOCUMENTOCOLPORTOR_LIST))
.andExpect(model().attributeExists(Constantes.CONTAINSKEY_PAGINACION))
.andExpect(model().attributeExists(Constantes.CONTAINSKEY_PAGINAS))
.andExpect(model().attributeExists(Constantes.CONTAINSKEY_PAGINA));
}
@Test
public void testListaAlAsociadoClaveInvalia() throws Exception {
log.debug("Se valida que regrese un error, ya que el asociado proporciono una clave de colportor invalida");
Usuario asociado = obtieneAsociado();
Usuario colportor = obtieneColportor(asociado, "5678");
Temporada temporada = new Temporada("test");
temporada.setOrganizacion(asociado.getEmpresa().getOrganizacion());
currentSession().save(temporada);
assertNotNull(temporada.getId());
Colegio colegio = new Colegio("UM", 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);
temporadaColportor.setObjetivo("2000");
currentSession().save(temporadaColportor);
assertNotNull(temporadaColportor.getId());
for (int i = 0; i < 20; i++) {
Documento documento = new Documento(Constantes.TIPO_DOCUMENTO, Constantes.FOLIO,
new Date(), Constantes.IMPORTE, Constantes.OBSERVACIONES, null);
documento.setTemporadaColportor(temporadaColportor);
documentoDao.crea(documento);
assertNotNull(documento);
}
authenticate(asociado, asociado.getPassword(), new ArrayList <GrantedAuthority> (asociado.getRoles()));
this.mockMvc.perform(post(Constantes.DOCUMENTOCOLPORTOR_PATH_LISTA)
.param("temporada.id", temporada.getId().toString())
.param("clave", "5678"))
.andExpect(forwardedUrl("/WEB-INF/jsp/"+Constantes.DOCUMENTOCOLPORTOR_PATH_LISTA+".jsp"))
//.andExpect(model().attributeExists(Constantes.TEMPORADACOLPORTAJE_LIST))
.andExpect(model().attributeExists(Constantes.DOCUMENTOCOLPORTOR_LIST))
.andExpect(model().attributeExists(Constantes.CONTAINSKEY_PAGINACION))
.andExpect(model().attributeExists(Constantes.CONTAINSKEY_PAGINAS))
.andExpect(model().attributeExists(Constantes.CONTAINSKEY_PAGINA));
}
@Test
public void testVer() throws Exception {
log.debug("Debiera mostrar documento");
Usuario colportor = obtieneColportor();
Usuario asociado = obtieneAsociado(colportor);
Temporada temporada = new Temporada("test");
temporada.setOrganizacion(asociado.getEmpresa().getOrganizacion());
currentSession().save(temporada);
assertNotNull(temporada.getId());
Colegio colegio = new Colegio("UM", 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);
temporadaColportor.setObjetivo("2000");
currentSession().save(temporadaColportor);
assertNotNull(temporadaColportor.getId());
Documento documento = null;
for (int i = 0; i < 20; i++) {
documento = new Documento(TIPO_DOCUMENTO, FOLIO, new Date(), IMPORTE, OBSERVACIONES,
temporadaColportor);
currentSession().save(documento);
assertNotNull(documento);
}
authenticate(colportor, colportor.getPassword(), new ArrayList <GrantedAuthority> (colportor.getRoles()));
this.mockMvc.perform(get(Constantes.DOCUMENTOCOLPORTOR_PATH_VER+"/"+documento.getId()))
.andExpect(model().attributeExists(Constantes.DOCUMENTOCOLPORTOR))
.andExpect(forwardedUrl("/WEB-INF/jsp/"+Constantes.DOCUMENTOCOLPORTOR_PATH_VER+".jsp"));
}
@Test
public void debieraCrearDocumentoPorColportor() throws Exception {
log.debug("Debiera crear documento por colportor");
Usuario colportor = obtieneColportor();
Usuario asociado = obtieneAsociado(colportor);
Temporada temporada = new Temporada("test");
temporada.setOrganizacion(asociado.getEmpresa().getOrganizacion());
currentSession().save(temporada);
assertNotNull(temporada.getId());
Colegio colegio = new Colegio("UM", 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);
temporadaColportor.setObjetivo("2000");
currentSession().save(temporadaColportor);
assertNotNull(temporadaColportor.getId());
Documento documento = null;
for (int i = 0; i < 20; i++) {
documento = new Documento(TIPO_DOCUMENTO, FOLIO, new Date(), IMPORTE, OBSERVACIONES,
temporadaColportor);
currentSession().save(documento);
assertNotNull(documento);
}
authenticate(colportor, colportor.getPassword(), new ArrayList <GrantedAuthority> (colportor.getRoles()));
this.mockMvc.perform(post(Constantes.DOCUMENTOCOLPORTOR_PATH_CREA)
.param("temporada.id", temporada.getId().toString())
.param("tipoDeDocumento", Constantes.TIPO_DOCUMENTO)
.param("folio", Constantes.FOLIO)
.param("importe", "0.0")
.param("fecha", "05/05/2010")
.param("observaciones", Constantes.OBSERVACIONES))
.andExpect(redirectedUrl(Constantes.DOCUMENTOCOLPORTOR_PATH_VER+"/"+(documento.getId()+1L)))
.andExpect(flash().attributeExists(Constantes.CONTAINSKEY_MESSAGE))
.andExpect(flash().attribute(Constantes.CONTAINSKEY_MESSAGE, "documento.creado.message"));
}
@Test
public void debieraCrearDocumentoPorAsociado() throws Exception {
log.debug("Debiera crear documento por asociado");
Usuario colportor = obtieneColportor();
Usuario asociado = obtieneAsociado(colportor);
Temporada temporada = new Temporada("test");
temporada.setOrganizacion(asociado.getEmpresa().getOrganizacion());
currentSession().save(temporada);
assertNotNull(temporada.getId());
Colegio colegio = new Colegio("UM", 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);
temporadaColportor.setObjetivo("2000");
currentSession().save(temporadaColportor);
assertNotNull(temporadaColportor.getId());
Documento documento = null;
for (int i = 0; i < 20; i++) {
documento = new Documento(TIPO_DOCUMENTO, FOLIO, new Date(), IMPORTE, OBSERVACIONES,
temporadaColportor);
currentSession().save(documento);
assertNotNull(documento);
}
authenticate(asociado, asociado.getPassword(), new ArrayList <GrantedAuthority> (asociado.getRoles()));
this.mockMvc.perform(post(Constantes.DOCUMENTOCOLPORTOR_PATH_CREA)
.param("temporadaColportor.colportor.clave", ((Colportor)colportor).getClave())
.param("temporadaColportor.temporada.id", temporada.getId().toString())
.param("tipoDeDocumento", Constantes.TIPO_DOCUMENTO)
.param("folio", Constantes.FOLIO)
.param("importe", "0.0")
.param("fecha", "05/05/2010")
.param("observaciones", Constantes.OBSERVACIONES))
.andExpect(redirectedUrl(Constantes.DOCUMENTOCOLPORTOR_PATH_VER+"/"+(documento.getId()+1L)))
.andExpect(flash().attributeExists(Constantes.CONTAINSKEY_MESSAGE))
.andExpect(flash().attribute(Constantes.CONTAINSKEY_MESSAGE, "documento.creado.message"));
}
@Test
public void debieraActualizarDocumento() throws Exception {
log.debug("Debiera actualizar documento");
Usuario colportor = obtieneColportor();
Usuario asociado = obtieneAsociado(colportor);
Temporada temporada = new Temporada("test");
temporada.setOrganizacion(asociado.getEmpresa().getOrganizacion());
currentSession().save(temporada);
assertNotNull(temporada.getId());
Colegio colegio = new Colegio("UM", 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);
temporadaColportor.setObjetivo("2000");
currentSession().save(temporadaColportor);
assertNotNull(temporadaColportor.getId());
Documento documento = null;
for (int i = 0; i < 20; i++) {
documento = new Documento(TIPO_DOCUMENTO, FOLIO, new Date(), IMPORTE, OBSERVACIONES,
temporadaColportor);
currentSession().save(documento);
assertNotNull(documento);
}
authenticate(colportor, colportor.getPassword(), new ArrayList <GrantedAuthority> (colportor.getRoles()));
this.mockMvc.perform(post(Constantes.DOCUMENTOCOLPORTOR_PATH_CREA)
.param("temporada.id", temporada.getId().toString())
.param("tipoDeDocumento", Constantes.TIPO_DOCUMENTO)
.param("folio", Constantes.FOLIO)
.param("importe", "0.0")
.param("fecha", "05/05/2010")
.param("observaciones", Constantes.OBSERVACIONES))
.andExpect(redirectedUrl(Constantes.DOCUMENTOCOLPORTOR_PATH_VER+"/"+(documento.getId()+1L)))
.andExpect(flash().attributeExists(Constantes.CONTAINSKEY_MESSAGE))
.andExpect(flash().attribute(Constantes.CONTAINSKEY_MESSAGE, "documento.creado.message"));
Map<String, Object> params = new TreeMap<String, Object>();
params.put("temporadaColportor", temporadaColportor.getId());
params = documentoDao.lista(params);
Integer nRows = ((List)params.get(Constantes.DOCUMENTOCOLPORTOR_LIST)).size();
documento = documentoDao.obtiene(documento.getId()+1L);
assertNotNull(documento.getId());
this.mockMvc.perform(post(Constantes.DOCUMENTOCOLPORTOR_PATH_ACTUALIZA)
.param("id", documento.getId().toString())
.param("version", documento.getVersion().toString())
.param("temporada.id", temporada.getId().toString())
.param("tipoDeDocumento", Constantes.TIPO_DOCUMENTO)
.param("folio", "modificado")
.param("importe", "0.0")
.param("fecha", "05/05/2010")
.param("observaciones", Constantes.OBSERVACIONES))
.andExpect(redirectedUrl(Constantes.DOCUMENTOCOLPORTOR_PATH_VER+"/"+documento.getId()))
.andExpect(flash().attributeExists(Constantes.CONTAINSKEY_MESSAGE))
.andExpect(flash().attribute(Constantes.CONTAINSKEY_MESSAGE, "documento.actualizado.message"));
params = documentoDao.lista(params);
Integer nRows2 = ((List)params.get(Constantes.DOCUMENTOCOLPORTOR_LIST)).size();
assertEquals(nRows, nRows2);
documento = documentoDao.obtiene(documento.getId());
assertNotNull(documento.getId());
assertEquals("modificado", documento.getFolio());
}
@Test
public void debieraEliminarDocumento() throws Exception {
log.debug("Debiera eliminar documento");
Usuario colportor = obtieneColportor();
Usuario asociado = obtieneAsociado(colportor);
Temporada temporada = new Temporada("test");
temporada.setOrganizacion(asociado.getEmpresa().getOrganizacion());
currentSession().save(temporada);
assertNotNull(temporada.getId());
Colegio colegio = new Colegio("UM", 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);
temporadaColportor.setObjetivo("2000");
currentSession().save(temporadaColportor);
assertNotNull(temporadaColportor.getId());
Documento documento = null;
for (int i = 0; i < 20; i++) {
documento = new Documento(TIPO_DOCUMENTO, FOLIO, new Date(), IMPORTE, OBSERVACIONES,
temporadaColportor);
currentSession().save(documento);
assertNotNull(documento.getId());
}
authenticate(colportor, colportor.getPassword(), new ArrayList <GrantedAuthority> (colportor.getRoles()));
Map<String, Object> params = new TreeMap<String, Object>();
params.put("temporadaColportor", temporadaColportor.getId());
params = documentoDao.lista(params);
assertNotNull(params.get(Constantes.DOCUMENTOCOLPORTOR_LIST));
Integer nRows = ((List)params.get(Constantes.DOCUMENTOCOLPORTOR_LIST)).size();
this.mockMvc.perform(post(Constantes.DOCUMENTOCOLPORTOR_PATH_ELIMINA)
.param("id", documento.getId().toString()))
.andExpect(flash().attributeExists(Constantes.CONTAINSKEY_MESSAGE))
.andExpect(flash().attribute(Constantes.CONTAINSKEY_MESSAGE, "documento.eliminado.message"))
.andExpect(redirectedUrl(Constantes.DOCUMENTOCOLPORTOR_PATH));
params = documentoDao.lista(params);
assertNotNull(params.get(Constantes.DOCUMENTOCOLPORTOR_LIST));
Integer nRows2 = ((List)params.get(Constantes.DOCUMENTOCOLPORTOR_LIST)).size();
//assertEquals((Long)(nRows-1L), nRows2);
}
@Test
public void deberiaProbarTablaDeTotales() throws Exception{
log.debug("Deberia probar tabla de resultados de acuerdo a los documentos creados");
Usuario colportor = obtieneColportor();
Usuario asociado = obtieneAsociado(colportor);
Temporada temporada = new Temporada("test");
temporada.setOrganizacion(asociado.getEmpresa().getOrganizacion());
currentSession().save(temporada);
assertNotNull(temporada.getId());
Colegio colegio = new Colegio("UM", 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);
temporadaColportor.setObjetivo("2000");
currentSession().save(temporadaColportor);
assertNotNull(temporadaColportor.getId());
authenticate(colportor, colportor.getPassword(), new ArrayList <GrantedAuthority> (colportor.getRoles()));
Documento documento = null;
for (int i = 0; i < 20; i++) {
documento = new Documento(Constantes.BOLETIN, Constantes.FOLIO,
new Date(), new BigDecimal("500"), Constantes.OBSERVACIONES, null);
documento.setTemporadaColportor(temporadaColportor);
documentoDao.crea(documento);
}
for (int i = 0; i < 20; i++) {
documento = new Documento(Constantes.DIEZMO, Constantes.FOLIO,
new Date(), new BigDecimal("50"), Constantes.OBSERVACIONES, null);
documento.setTemporadaColportor(temporadaColportor);
documentoDao.crea(documento);
}
for (int i = 0; i < 20; i++) {
documento = new Documento(Constantes.DEPOSITO_CAJA, Constantes.FOLIO,
new Date(), new BigDecimal("100"), Constantes.OBSERVACIONES, null);
documento.setTemporadaColportor(temporadaColportor);
documentoDao.crea(documento);
}
for (int i = 0; i < 20; i++) {
documento = new Documento(Constantes.DEPOSITO_BANCO, Constantes.FOLIO,
new Date(), new BigDecimal("100"), Constantes.OBSERVACIONES, null);
documento.setTemporadaColportor(temporadaColportor);
documentoDao.crea(documento);
}
for (int i = 0; i < 20; i++) {
documento = new Documento(Constantes.NOTAS_DE_COMPRA, Constantes.FOLIO,
new Date(), new BigDecimal("100"), Constantes.OBSERVACIONES, null);
documento.setTemporadaColportor(temporadaColportor);
documentoDao.crea(documento);
}
this.mockMvc.perform(get(Constantes.DOCUMENTOCOLPORTOR_PATH)
.param("clave", "54321")
.param("temporadaId", "1"))
.andExpect(model().attributeExists(Constantes.TOTALBOLETIN))
.andExpect(model().attributeExists(Constantes.TOTALDIEZMOS))
.andExpect(model().attributeExists(Constantes.TOTALDEPOSITOS))
.andExpect(model().attributeExists(Constantes.FIDELIDAD))
.andExpect(model().attributeExists(Constantes.ALCANZADO))
.andExpect(model().attributeExists(Constantes.TOTALBOLETIN))
.andExpect(model().attribute(Constantes.TOTALBOLETIN, new BigDecimal("10000.00").setScale(2, BigDecimal.ROUND_HALF_EVEN)))
.andExpect(model().attribute(Constantes.TOTALDIEZMOS, new BigDecimal("1000.00").setScale(2, BigDecimal.ROUND_HALF_EVEN)))
.andExpect(model().attribute(Constantes.TOTALDEPOSITOS, new BigDecimal("4000.00").setScale(2, BigDecimal.ROUND_HALF_EVEN)))
.andExpect(model().attribute(Constantes.FIDELIDAD, new BigDecimal("100.000000").setScale(2, BigDecimal.ROUND_HALF_EVEN)))
.andExpect(model().attribute(Constantes.ALCANZADO, new BigDecimal("500.00").setScale(2, BigDecimal.ROUND_HALF_EVEN)))
.andExpect(view().name(Constantes.DOCUMENTOCOLPORTOR_PATH_LISTA));
}
}