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 })); } }
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()); }
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(); }); }