PageRenderTime 290ms CodeModel.GetById 80ms app.highlight 122ms RepoModel.GetById 80ms app.codeStats 0ms

/test/integration/general/EmpresaControllerIntegrationTests.groovy

http://github.com/jdmr/mateo
Groovy | 147 lines | 124 code | 23 blank | 0 comment | 2 complexity | 44f5ad2bf9ec490ae34a4adb0cc86323 MD5 | raw file
  1package general
  2
  3import grails.test.*
  4import grails.test.mixin.*
  5import org.junit.*
  6
  7@TestFor(EmpresaController)
  8class EmpresaControllerIntegrationTests extends BaseIntegrationTest {
  9
 10    def springSecurityService
 11
 12    @Test
 13    void debieraMostrarListaDeEmpresas() {
 14        authenticateAdmin()
 15
 16        def organizacion = new Organizacion (
 17            codigo: 'TST1'
 18            , nombre: 'TEST-1'
 19            , nombreCompleto: 'TEST-1'
 20        ).save()
 21        def currentUser = springSecurityService.currentUser
 22        def flag = true
 23        for(i in 1..20) {
 24            def empresa = new Empresa (
 25                codigo: "TST$i"
 26                , nombre: "TEST-$i"
 27                , nombreCompleto: "TEST$i"
 28                , organizacion: organizacion
 29            ).save()
 30            if (flag) { 
 31                currentUser.empresa = empresa
 32                flag = false
 33            }
 34        }
 35
 36        def controller = new EmpresaController()
 37        controller.springSecurityService = springSecurityService
 38        controller.index()
 39        assertEquals '/empresa/lista', controller.response.redirectedUrl
 40
 41        def model = controller.lista()
 42        assertEquals 10, model.empresas.size()
 43        assert 20 <= model.totalDeEmpresas
 44    }
 45
 46    @Test
 47    void debieraCrearEmpresa() {
 48        authenticateAdmin()
 49
 50        def organizacion = new Organizacion (
 51            codigo: 'TST1'
 52            , nombre: 'TEST-1'
 53            , nombreCompleto: 'TEST-1'
 54        ).save()
 55
 56        def controller = new EmpresaController()
 57        controller.springSecurityService = springSecurityService
 58        def model = controller.nueva()
 59        assert model.empresa
 60
 61        controller.params.codigo = 'TST-1'
 62        controller.params.nombre = "TEST-1"
 63        controller.params.nombreCompleto = "TEST-1"
 64        controller.crea()
 65        assert controller.response.redirectedUrl.startsWith('/empresa/ver')
 66    }
 67
 68    @Test
 69    void debieraActualizarEmpresa() {
 70        authenticateAdmin()
 71
 72        def organizacion = new Organizacion (
 73            codigo: 'TST1'
 74            , nombre: 'TEST-1'
 75            , nombreCompleto: 'TEST-1'
 76        ).save()
 77        def empresa = new Empresa (
 78            codigo: 'TST1'
 79            , nombre: 'TEST-1'
 80            , nombreCompleto: 'TEST-1'
 81            , organizacion: organizacion
 82        ).save()
 83        def usuario = springSecurityService.currentUser
 84        usuario.empresa = empresa
 85
 86        def controller = new EmpresaController()
 87        controller.springSecurityService = springSecurityService
 88        controller.params.id = empresa.id
 89        def model = controller.ver()
 90        assert model.empresa
 91        assertEquals 'TEST-1', model.empresa.nombre
 92
 93        controller.params.id = empresa.id
 94        model = controller.edita()
 95        assert model.empresa
 96        assertEquals 'TEST-1', model.empresa.nombre
 97
 98        controller.params.id = empresa.id
 99        controller.params.version = empresa.version
100        controller.params.nombre = 'TEST-2'
101        controller.actualiza()
102        assertEquals "/empresa/ver/${empresa.id}", controller.response.redirectedUrl
103
104        empresa.refresh()
105        assertEquals 'TEST-2', empresa.nombre
106    }
107
108    @Test
109    void debieraEliminarEmpresa() {
110        authenticateAdmin()
111
112        def organizacion = new Organizacion (
113            codigo: 'TST1'
114            , nombre: 'TEST-1'
115            , nombreCompleto: 'TEST-1'
116        ).save()
117        def empresa = new Empresa (
118            codigo: 'TST1'
119            , nombre: 'TEST-1'
120            , nombreCompleto: 'TEST-1'
121            , organizacion: organizacion
122        ).save()
123        new Empresa (
124            codigo: 'TST2'
125            , nombre: 'TEST-2'
126            , nombreCompleto: 'TEST-2'
127            , organizacion: organizacion
128        ).save()
129        def currentUser = springSecurityService.currentUser
130        currentUser.empresa = empresa
131
132        def controller = new EmpresaController()
133        controller.springSecurityService = springSecurityService
134        controller.params.id = empresa.id
135        def model = controller.ver()
136        assert model.empresa
137        assertEquals 'TEST-1', model.empresa.nombre
138
139        controller.params.id = empresa.id
140        controller.elimina()
141        assertEquals "/empresa/lista", controller.response.redirectedUrl
142
143        model = Empresa.get(empresa.id)
144        assert !model
145    }
146
147}