Advertisement
Guest User

Untitled

a guest
Aug 20th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.40 KB | None | 0 0
  1. package py.com.personal.bc.business.test;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4.  
  5. import javax.inject.Inject;
  6.  
  7. import junit.framework.Assert;
  8.  
  9. import org.junit.Test;
  10. import org.junit.runner.RunWith;
  11. import org.slf4j.Logger;
  12.  
  13. import py.com.personal.bc.calendario.dao.CalendarioMDAO;
  14. import py.com.personal.bc.calendario.model.BandaHoraria;
  15. import py.com.personal.bc.calendario.model.Calendario;
  16. import py.com.personal.bc.calendario.model.FranjaHoraria;
  17. import py.com.personal.bc.common.transactions.voltdb.util.loader.LoadSettings;
  18. import py.com.personal.bc.falcon.testing.voltdb.EscenarioSetter;
  19. import py.com.personal.bc.falcon.testing.voltdb.Validador;
  20. import py.com.personal.bc.falcon.testing.voltdb.exceptions.EscenarioLoadException;
  21. import py.com.personal.bc.testingse.runner.CDIJUnitRunner;
  22. import py.com.personal.bc.testingse.util.RequiresThreadScope;
  23. import py.com.personal.bc.voltdb.utils.mapper.MapConfig;
  24.  
  25. import com.fasterxml.jackson.databind.DeserializationFeature;
  26. import com.fasterxml.jackson.databind.ObjectMapper;
  27.  
  28. @RequiresThreadScope
  29. @RunWith(CDIJUnitRunner.class)
  30. public class CalendarioTest {
  31.  
  32. @Inject
  33. CalendarioBusinessTransaccion calendarioBusiness;
  34.  
  35. @Inject
  36. private EscenarioSetter escenarioSetter;
  37.  
  38. @Inject
  39. private Validador validador;
  40.  
  41. @Inject
  42. private Logger logger;
  43.  
  44. @Test
  45. public void updateCalendarioTest() throws Exception {
  46.  
  47. logger.info("--- Test Update Calendario ---");
  48.  
  49. /**
  50. * Caso de prueba: Actualizar un calendario existente
  51. */
  52. escenarioSetter.init("/test_data/escenarios/calendario/calendarioUpdate.json");
  53.  
  54. Calendario r = calendarioBusiness.traerCalendario(1);
  55. r.setDescripcion("CALENDARIO TEST MOD");
  56. calendarioBusiness.update(r);
  57. validador.validar("/test_data/validaciones/calendario/afterCalendarioUpdate.json", true);
  58.  
  59. /**
  60. * Caso de prueba: No se puede actualizar un registro inexistente
  61. */
  62. Calendario cal = new Calendario();
  63. cal.setNumeroCalendario(-1);
  64. try{
  65. calendarioBusiness.update(cal);
  66. } catch(Exception e){
  67. Assert.assertTrue(e.getMessage() != null && e.getMessage().equalsIgnoreCase("El calendario no existe."));
  68. }
  69. }
  70.  
  71. @Test
  72. public void insertCalendarioTest () throws Exception {
  73.  
  74. /**
  75. * Caso de prueba: Insertar un calendario con bandas y franjas
  76. */
  77. escenarioSetter.init("/test_data/escenarios/calendario/calendarioInsert.json");
  78.  
  79. Calendario nuevo = new Calendario();
  80. nuevo.setNumeroCalendario(1);
  81. nuevo.setDescripcion("CALENDARIO INSERT TEST");
  82.  
  83. BandaHoraria bh1 = new BandaHoraria();
  84. bh1.setDescripcion("CALENDARIO INSERT TEST");
  85. bh1.setNumeroBandaHoraria(1);
  86. bh1.setNumeroCalendario(1);
  87.  
  88. BandaHoraria bh2 = new BandaHoraria();
  89. bh2.setDescripcion("CALENDARIO INSERT TEST");
  90. bh2.setNumeroBandaHoraria(2);
  91. bh2.setNumeroCalendario(1);
  92.  
  93. List<BandaHoraria> listaBandas = new ArrayList<BandaHoraria>();
  94. listaBandas.add(bh1);
  95. listaBandas.add(bh2);
  96. nuevo.setBandasHorarias(listaBandas);
  97.  
  98. FranjaHoraria fh1 = new FranjaHoraria();
  99. fh1.setNumeroCalendario(1);
  100. fh1.setNumeroBandaHoraria(1);
  101. fh1.setNumeroDiaSemana((byte) 1);
  102. fh1.setHoraInicio("00:00:00");
  103. fh1.setHoraFin("05:59:59");
  104.  
  105. FranjaHoraria fh2 = new FranjaHoraria();
  106. fh2.setNumeroCalendario(1);
  107. fh2.setNumeroBandaHoraria(2);
  108. fh2.setNumeroDiaSemana((byte) 1);
  109. fh2.setHoraInicio("06:00:00");
  110. fh2.setHoraFin("20:59:59");
  111.  
  112. FranjaHoraria fh3 = new FranjaHoraria();
  113. fh3.setNumeroCalendario(1);
  114. fh3.setNumeroBandaHoraria(1);
  115. fh3.setNumeroDiaSemana((byte) 1);
  116. fh3.setHoraInicio("21:00:00");
  117. fh3.setHoraFin("23:59:59");
  118.  
  119. FranjaHoraria fh4 = new FranjaHoraria();
  120. fh4.setNumeroCalendario(1);
  121. fh4.setNumeroBandaHoraria(2);
  122. fh4.setNumeroDiaSemana((byte) 2);
  123. fh4.setHoraInicio("00:00:00");
  124. fh4.setHoraFin("23:59:59");
  125.  
  126. FranjaHoraria fh5 = new FranjaHoraria();
  127. fh5.setNumeroCalendario(1);
  128. fh5.setNumeroBandaHoraria(1);
  129. fh5.setNumeroDiaSemana((byte) 3);
  130. fh5.setHoraInicio("00:00:00");
  131. fh5.setHoraFin("23:59:59");
  132.  
  133. FranjaHoraria fh6 = new FranjaHoraria();
  134. fh6.setNumeroCalendario(1);
  135. fh6.setNumeroBandaHoraria(2);
  136. fh6.setNumeroDiaSemana((byte) 4);
  137. fh6.setHoraInicio("00:00:00");
  138. fh6.setHoraFin("23:59:59");
  139.  
  140. FranjaHoraria fh7 = new FranjaHoraria();
  141. fh7.setNumeroCalendario(1);
  142. fh7.setNumeroBandaHoraria(1);
  143. fh7.setNumeroDiaSemana((byte) 5);
  144. fh7.setHoraInicio("00:00:00");
  145. fh7.setHoraFin("23:59:59");
  146.  
  147. FranjaHoraria fh8 = new FranjaHoraria();
  148. fh8.setNumeroCalendario(1);
  149. fh8.setNumeroBandaHoraria(2);
  150. fh8.setNumeroDiaSemana((byte) 6);
  151. fh8.setHoraInicio("00:00:00");
  152. fh8.setHoraFin("23:59:59");
  153.  
  154. FranjaHoraria fh9 = new FranjaHoraria();
  155. fh9.setNumeroCalendario(1);
  156. fh9.setNumeroBandaHoraria(1);
  157. fh9.setNumeroDiaSemana((byte) 7);
  158. fh9.setHoraInicio("00:00:00");
  159. fh9.setHoraFin("23:59:59");
  160.  
  161. List<FranjaHoraria> listaFranjas = new ArrayList<>();
  162. listaFranjas.add(fh1);
  163. listaFranjas.add(fh2);
  164. listaFranjas.add(fh3);
  165. listaFranjas.add(fh4);
  166. listaFranjas.add(fh5);
  167. listaFranjas.add(fh6);
  168. listaFranjas.add(fh7);
  169. listaFranjas.add(fh8);
  170. listaFranjas.add(fh9);
  171. nuevo.setFranjasHorarias(listaFranjas);
  172.  
  173. calendarioBusiness.insert(nuevo);
  174.  
  175. validador.validar("/test_data/validaciones/calendario/afterCalendarioInsert.json", true);
  176.  
  177. }
  178.  
  179. @Test
  180. public void deleteCalendarioTest () throws Exception {
  181. /**
  182. * Caso de Prueba: Eliminar un calendario que existe
  183. */
  184. escenarioSetter.init("/test_data/escenarios/calendario/calendarioUpdate.json");
  185. calendarioBusiness.delete(1);
  186. validador.validar("/test_data/validaciones/calendario/afterCalendarioDelete.json", true);
  187.  
  188. /**
  189. * Caso de Prueba: Eliminar un calendario que no existe
  190. */
  191. try{
  192. calendarioBusiness.delete(-1);
  193. } catch(Exception e){
  194. Assert.assertTrue(e.getMessage() != null && e.getMessage().equalsIgnoreCase("El calendario no existe."));
  195. }
  196.  
  197. /**
  198. * Caso de Prueba: Eliminar un calendario que es referenciado en otras tablas
  199. */
  200. escenarioSetter.init("/test_data/escenarios/calendario/calendarioDeleteConReferencias.json");
  201. try{
  202. calendarioBusiness.delete(0);
  203. } catch(Exception e){
  204. Assert.assertTrue(e.getMessage() != null && e.getMessage().equalsIgnoreCase("El calendario está siendo referenciado en otras tablas"));
  205. }
  206. validador.validar("/test_data/validaciones/calendario/afterCalendarioDeleteConReferencias.json", true);
  207. }
  208.  
  209. @Test
  210. public void traerCalendarioTest() throws EscenarioLoadException, Exception{
  211. /**
  212. * Caso de prueba: Llamar a un calendario que no existe
  213. */
  214. logger.info("--- Test traer Calendario inexistente ---");
  215. try {
  216. calendarioBusiness.traerCalendario(-1);
  217. } catch (Exception e) {
  218. Assert.assertTrue(e.getMessage() != null && e.getMessage().equalsIgnoreCase("El calendario no existe."));
  219. }
  220.  
  221. /**
  222. * Caso de prueba: Llamar a un calendario que existe y verificar que tenga los mismos datos que en la BD
  223. */
  224. logger.info("--- Test traer Calendario existente ---");
  225.  
  226. escenarioSetter.init("/test_data/escenarios/calendario/calendarioUpdate.json");
  227.  
  228. Calendario c = calendarioBusiness.traerCalendario(1);
  229. Assert.assertEquals(c.getDescripcion(), "CALENDARIO TEST");
  230.  
  231. // El calendario debe tener 2 bandas
  232. Assert.assertNotNull(c.getBandasHorarias());
  233. Assert.assertEquals(c.getBandasHorarias().size(), 2);
  234.  
  235. /* El método traerCalendario encuentra en la BD 8 franjas pero crea en memoria un registro extra para las
  236. * Franjas que tienen bandas iguales en los extremos, por lo que en este caso devuelve 9 franjas
  237. */
  238. Assert.assertNotNull(c.getFranjasHorarias());
  239. Assert.assertEquals(c.getFranjasHorarias().size(), 9);
  240. }
  241.  
  242. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement