private ActionResult ModificaDadosGerais(int id, int versao, string nome, string nif, int tipoFuncionario)
        {
            using (var tran = _session.BeginTransaction()) {
                var tipos = _repositorioTiposFuncionario.ObtemTodosTipos();
                var tipo  = tipos.First(tf => tf.Id == tipoFuncionario);

                var funcionario = _repositorioFuncionarios.ObtemFuncionario(id);
                Contract.Assume(funcionario != null);

                funcionario.Nif             = nif;
                funcionario.Nome            = nome;
                funcionario.TipoFuncionario = tipo;

                try {
                    _repositorioFuncionarios.Grava(funcionario);
                    tran.Commit();
                }
                catch (InvalidOperationException) {
                    ModelState.AddModelError("nif", "NIF já foi associado a outro contribuinte");
                }



                return(View("fichafuncionario", new DadosFichaFormulario {
                    ENovo = false,
                    Funcionario = funcionario,
                    TiposFuncionario = tipos
                }));
            }
        }
Example #2
0
        public void Cenario_sem_sucesso(RepositorioFuncionarios repositorio,
                                        Funcionario funcionario,
                                        InvalidOperationException excecaoEsperada)
        {
            "Dado um repositorio"
            .Given(() => repositorio = _container.Create <RepositorioFuncionarios>());

            "E um funcionário com NIF repetido"
            .And(() => funcionario = Funcionario.CriaVazio(new TipoFuncionario()));

            "E alguns mocks"
            .And(() => _container.GetMock <IVerificadorNif>()
                 .Setup(v => v.NifDuplicado(It.IsAny <string>(), It.IsAny <int>()))
                 .Returns(true));

            "Quando gravamos o funcionário"
            .When(() => {
                try {
                    repositorio.Grava(funcionario);
                }
                catch (InvalidOperationException ex) {
                    excecaoEsperada = ex;
                }
            });

            "Então obtemos uma exceção "
            .Then(() => excecaoEsperada.Should().NotBeNull());

            "e serviço verificação é usado"
            .And(() => _container.GetMock <IVerificadorNif>().VerifyAll());
        }
Example #3
0
        public void Cenario_com_sucesso(RepositorioFuncionarios repositorio, Funcionario funcionario)
        {
            "Dado um repositorio"
            .Given(() => repositorio = _container.Create <RepositorioFuncionarios>());

            "E um funcionário com NIF não repetido"
            .And(() => funcionario = Funcionario.CriaVazio(new TipoFuncionario()));

            "E alguns mocks"
            .And(() => {
                _container.GetMock <IVerificadorNif>()
                .Setup(v => v.NifDuplicado(It.IsAny <string>(), It.IsAny <int>()))
                .Returns(false);
                _container.GetMock <ISession>()
                .Setup(s => s.SaveOrUpdate(It.IsAny <object>()));
            });

            "Quando gravamos o funcionário"
            .When(() => repositorio.Grava(funcionario));

            "Então~não obtemos exceção e serviço verificação é usado"
            .Then(() => {
                _container.GetMock <IVerificadorNif>().VerifyAll();
                _container.GetMock <ISession>().VerifyAll();
            });
        }