PageRenderTime 315ms CodeModel.GetById 141ms app.highlight 20ms RepoModel.GetById 151ms app.codeStats 1ms

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