/test/integration/inventario/LoteEntradaControllerIntegrationTests.groovy

http://github.com/jdmr/mateo · Groovy · 295 lines · 266 code · 27 blank · 2 comment · 1 complexity · 4afcb4430a38cd767b5c0043dd9f928c MD5 · raw file

  1. package inventario
  2. import general.*
  3. import grails.test.*
  4. import grails.test.mixin.*
  5. import org.junit.*
  6. @TestFor(LoteEntradaController)
  7. class LoteEntradaControllerIntegrationTests extends BaseIntegrationTest {
  8. def springSecurityService
  9. @Test
  10. void debieraMostrarListaDeLoteEntradas() {
  11. authenticateAdmin()
  12. def organizacion = new Organizacion (
  13. codigo: 'TST1'
  14. , nombre: 'TEST-1'
  15. , nombreCompleto: 'TEST-1'
  16. ).save()
  17. def empresa = new Empresa (
  18. codigo: 'TST1'
  19. , nombre: 'TEST-1'
  20. , nombreCompleto: 'TEST-1'
  21. , organizacion: organizacion
  22. ).save()
  23. def almacen = new Almacen (
  24. codigo: "TEST"
  25. , nombre: "TEST"
  26. , empresa : empresa
  27. ).save()
  28. def tipoProducto = new TipoProducto(
  29. nombre: "TEST-1"
  30. , descripcion: "TEST-1"
  31. , almacen: almacen
  32. ).save()
  33. def producto = new Producto (
  34. codigo: "TE-1"
  35. , sku: "TEST-"
  36. , nombre: "TEST-"
  37. , descripcion: "TEST-"
  38. , marca: "TEST-"
  39. , modelo : "TEST-"
  40. , ubicacion: "TEST-"
  41. , almacen : almacen
  42. , tipoProducto : tipoProducto
  43. ).save()
  44. def proveedor = new Proveedor(
  45. nombre: 'proveedor'
  46. , nombreCompleto: 'proveedorsanchez'
  47. , rfc: '3333333333333'
  48. , empresa: empresa
  49. ).save()
  50. def entrada = new Entrada (
  51. folio: "001"
  52. , factura: "10000"
  53. , comentarios: "no"
  54. , tipoCambio: "0.00"
  55. , proveedor: proveedor
  56. , almacen: almacen
  57. ).save()
  58. for(i in 1..20) {
  59. new LoteEntrada (
  60. cantidad: "1.0$i"
  61. , producto: producto
  62. , entrada : entrada
  63. ).save()
  64. }
  65. // def currentUser = springSecurityService.currentUser
  66. def controller = new LoteEntradaController()
  67. controller.springSecurityService = springSecurityService
  68. controller.index()
  69. assertEquals '/loteEntrada/lista', controller.response.redirectedUrl
  70. def model = controller.lista()
  71. assertEquals 10, model.loteEntradas.size()
  72. assert 20 <= model.totalDeLoteEntradas
  73. }
  74. @Test
  75. void debieraCrearLoteEntrada() {
  76. authenticateAdmin()
  77. def organizacion = new Organizacion (
  78. codigo: 'TST1'
  79. , nombre: 'TEST-1'
  80. , nombreCompleto: 'TEST-1'
  81. ).save()
  82. def empresa = new Empresa (
  83. codigo: 'TST1'
  84. , nombre: 'TEST-1'
  85. , nombreCompleto: 'TEST-1'
  86. , organizacion: organizacion
  87. ).save()
  88. def almacen = new Almacen (
  89. codigo: "TEST"
  90. , nombre: "TEST"
  91. , empresa : empresa
  92. ).save()
  93. def tipoProducto = new TipoProducto(
  94. nombre: "TEST-1"
  95. , descripcion: "TEST-1"
  96. , almacen: almacen
  97. ).save()
  98. def producto = new Producto (
  99. codigo: "TE-1"
  100. , sku: "TEST-"
  101. , nombre: "TEST-"
  102. , descripcion: "TEST-"
  103. , marca: "TEST-"
  104. , modelo : "TEST-"
  105. , ubicacion: "TEST-"
  106. , almacen : almacen
  107. , tipoProducto : tipoProducto
  108. ).save()
  109. def proveedor = new Proveedor(
  110. nombre: 'proveedor'
  111. , nombreCompleto: 'proveedorsanchez'
  112. , rfc: '3333333333333'
  113. , empresa: empresa
  114. ).save()
  115. def entrada = new Entrada (
  116. folio: "001"
  117. , factura: "10000"
  118. , comentarios: "no"
  119. , tipoCambio: "0.00"
  120. , proveedor: proveedor
  121. , almacen: almacen
  122. ).save()
  123. def controller = new LoteEntradaController()
  124. controller.springSecurityService = springSecurityService
  125. def model = controller.nuevo()
  126. controller.params.producto = producto
  127. controller.params.entrada = entrada
  128. controller.crea()
  129. assert controller.response.redirectedUrl.startsWith('/loteEntrada/ver')
  130. }
  131. @Test
  132. void debieraActualizarLoteEntrada() {
  133. authenticateAdmin()
  134. def organizacion = new Organizacion (
  135. codigo: 'TST1'
  136. , nombre: 'TEST-1'
  137. , nombreCompleto: 'TEST-1'
  138. ).save()
  139. def empresa = new Empresa (
  140. codigo: 'TST1'
  141. , nombre: 'TEST-1'
  142. , nombreCompleto: 'TEST-1'
  143. , organizacion: organizacion
  144. ).save()
  145. def almacen = new Almacen (
  146. codigo: "TEST"
  147. , nombre: "TEST"
  148. , empresa : empresa
  149. ).save()
  150. def tipoProducto = new TipoProducto(
  151. nombre: "TEST-1"
  152. , descripcion: "TEST-1"
  153. , almacen: almacen
  154. ).save()
  155. def producto = new Producto (
  156. codigo: "TE-1"
  157. , sku: "TEST-"
  158. , nombre: "TEST-"
  159. , descripcion: "TEST-"
  160. , marca: "TEST-"
  161. , modelo : "TEST-"
  162. , ubicacion: "TEST-"
  163. , almacen : almacen
  164. , tipoProducto : tipoProducto
  165. ).save()
  166. def proveedor = new Proveedor(
  167. nombre: 'proveedor'
  168. , nombreCompleto: 'proveedorsanchez'
  169. , rfc: '3333333333333'
  170. , empresa: empresa
  171. ).save()
  172. def entrada = new Entrada (
  173. folio: "001"
  174. , factura: "10000"
  175. , comentarios: "no"
  176. , tipoCambio: "0.00"
  177. , proveedor: proveedor
  178. , almacen: almacen
  179. ).save()
  180. def loteEntrada = new LoteEntrada (
  181. producto: producto
  182. , entrada : entrada
  183. ).save()
  184. def controller = new LoteEntradaController()
  185. controller.springSecurityService = springSecurityService
  186. controller.params.id = loteEntrada.id
  187. def model = controller.ver()
  188. assert model.loteEntrada
  189. assertEquals "TE-1", model.loteEntrada.producto.codigo
  190. controller.params.id = loteEntrada.id
  191. model = controller.edita()
  192. assert model.loteEntrada
  193. assertEquals "TE-1", model.loteEntrada.producto.codigo
  194. controller.params.id = loteEntrada.id
  195. controller.params.version = loteEntrada.version
  196. // controller.params.cantidad = "2.00"
  197. producto.codigo = "TE-2"
  198. controller.actualiza()
  199. assertEquals "/loteEntrada/ver/${loteEntrada.id}", controller.response.redirectedUrl
  200. loteEntrada.refresh()
  201. assertEquals "TE-2", model.loteEntrada.producto.codigo
  202. }
  203. @Test
  204. void debieraEliminarLoteEntrada() {
  205. authenticateAdmin()
  206. def organizacion = new Organizacion (
  207. codigo: 'TST1'
  208. , nombre: 'TEST-1'
  209. , nombreCompleto: 'TEST-1'
  210. ).save()
  211. def empresa = new Empresa (
  212. codigo: 'TST1'
  213. , nombre: 'TEST-1'
  214. , nombreCompleto: 'TEST-1'
  215. , organizacion: organizacion
  216. ).save()
  217. def almacen = new Almacen (
  218. codigo: "TEST"
  219. , nombre: "TEST"
  220. , empresa : empresa
  221. ).save()
  222. def tipoProducto = new TipoProducto(
  223. nombre: "TEST-1"
  224. , descripcion: "TEST-1"
  225. , almacen: almacen
  226. ).save()
  227. def producto = new Producto (
  228. codigo: "TE-1"
  229. , sku: "TEST-"
  230. , nombre: "TEST-"
  231. , descripcion: "TEST-"
  232. , marca: "TEST-"
  233. , modelo : "TEST-"
  234. , ubicacion: "TEST-"
  235. , almacen : almacen
  236. , tipoProducto : tipoProducto
  237. ).save()
  238. def proveedor = new Proveedor(
  239. nombre: 'proveedor'
  240. , nombreCompleto: 'proveedorsanchez'
  241. , rfc: '3333333333333'
  242. , empresa: empresa
  243. ).save()
  244. def entrada = new Entrada (
  245. folio: "001"
  246. , factura: "10000"
  247. , comentarios: "no"
  248. , tipoCambio: "0.00"
  249. , proveedor: proveedor
  250. , almacen: almacen
  251. ).save()
  252. def loteEntrada = new LoteEntrada (
  253. producto: producto
  254. , entrada : entrada
  255. ).save()
  256. def controller = new LoteEntradaController()
  257. controller.springSecurityService = springSecurityService
  258. controller.params.id = loteEntrada.id
  259. def model = controller.ver()
  260. assert model.loteEntrada
  261. assertEquals "TE-1", model.loteEntrada.producto.codigo
  262. controller.params.id = loteEntrada.id
  263. controller.elimina()
  264. assertEquals "/loteEntrada/lista", controller.response.redirectedUrl
  265. model = LoteEntrada.get(loteEntrada.id)
  266. assert !model
  267. }
  268. }