public void Gera_erro_se_numero_extensao_tiver_letras(Action criacao, Exception excecaoEsperada) { "Dada uma operação de criação de uma extensão" .Given(() => criacao = () => Contacto.CriaExtensao("123d")); "Quando a executarmos" .When(() => { try { criacao(); } catch (Exception e) { excecaoEsperada = e; } }); "A sua execução deve gerar erro" .Then(() => Assert.NotNull(excecaoEsperada)); }
public void Mapeamento_funcionario_correto() { var tipoFuncionario = new TipoFuncionario(100, "Teste"); var funcionario = new FuncionarioDto { Id = 1, Contactos = new List <Contacto> { Contacto.CriaExtensao("1234") }, Nif = "123456789", Nome = "Luis", TipoFuncionario = tipoFuncionario }; new GestorTransacoesTestes().ExecutaTransacao((sess, tran) => { sess.Save(tipoFuncionario); sess.Flush(); new PersistenceSpecification <FuncionarioDto>(sess) .VerifyTheMappings(funcionario); Assert.True(true); }); }
public void Nao_funciona_com_versoes_diferentes(Funcionario funcionario, ModificaDadosGeraisFuncionario comando, Exception excecaoEsperada) { "Dado um funcionário existente" .Given(() => funcionario = Funcionario.CriaNovo(new CriaFuncionario("Luis", "123456789", new TipoFuncionario(1, "Docente"), new[] { Contacto.CriaExtensao("1234") }))); "e um comando de modificação" .And(() => comando = new ModificaDadosGeraisFuncionario(1, 2, "ll", "123456789", new TipoFuncionario(1, "Docente"))); "Quando aplicamos o comando" .When(() => { try { funcionario.Modifica(comando); } catch (Exception ex) { excecaoEsperada = ex; } }); "Então devemos obter uma exceção" .Then(() => Assert.IsType <InvalidOperationException>(excecaoEsperada)); }
public void Funciona_corretamente_mesmo_com_contactos_inexistentes(Funcionario funcionario, ModificaContactosFuncionario comando) { "Dado um funcionário existente" .Given(() => funcionario = Funcionario.CriaNovo(new CriaFuncionario("Luis", "123456789", new TipoFuncionario(1, "Docente"), new[] { Contacto.CriaExtensao("1234") }, 1))); "e um comando de modificação" .And(() => comando = new ModificaContactosFuncionario(1, 1, new Contacto[] { Contacto.CriaEmail("*****@*****.**"), Contacto.CriaExtensao("1234") }, null)); "Quando aplicamos o comando" .When(() => funcionario.Modifica(comando)); "Então devemos obter os novos contactos na lista de contactos" .Then(() => funcionario.Contactos.Should().NotContain(comando.ContactosRemover)); }
public void Consegue_adicionar_novos_contactos_aos_existentes(Funcionario funcionario, ModificaContactosFuncionario comando) { "Dado um funcionário existente" .Given(() => funcionario = Funcionario.CriaNovo(new CriaFuncionario("Luis", "123456789", new TipoFuncionario(1, "Docente"), new[] { Contacto.CriaExtensao("1234") }, 1))); "e um comando de modificação" .And(() => comando = new ModificaContactosFuncionario(1, 1, null, new Contacto[] { Contacto.CriaEmail("*****@*****.**"), Contacto.CriaTelefone("123123123") })); "Quando aplicamos o comando" .When(() => funcionario.Modifica(comando)); "Então devemos obter os novos contactos na lista de contactos" .Then(() => funcionario.Contactos.Should().Contain(comando.ContactosAdicionar)); }
public void Trata_comando_alteracao_contactos_com_sucesso(ModificaContactosFuncionario comando, Funcionario funcionario, Processador processador, MsgGravacao msg) { "Dado um comando de ateração de contactos" .Given(() => comando = new ModificaContactosFuncionario(0, 0, null, new[] { Contacto.CriaExtensao("1234") })); "um funcionário" .And(() => funcionario = Funcionario.CriaNovo(new CriaFuncionario("Luis", "123456789", new TipoFuncionario(1, "Docente")))); "e um processador" .And(() => processador = _container.Create <Processador>()); "E alguns mocks" .And(() => { var session = _container.GetMock <ISession>(); session.Setup(s => s.Load <Funcionario>(comando.Id)) .Returns(funcionario); session.Setup(s => s.Update(funcionario)); session.Setup(s => s.Flush()); }); "Quando tratamos o comando" .When(() => processador.Trata(comando)); "Então obtemos uma mensagem com informação" .Then(() => msg.Id.Should().Be(comando.Id)); "E os mocks foram usados" .And(() => _container.GetMock <ISession>().VerifyAll()); }
public void Interage_com_gerador_relatorios_para_carregar_ficha(FuncionariosController controlador, int id, ActionResult resultado) { var funcionario = new Funcionario { Id = 1, Nif = "123456789", Nome = "Luis Abreu", TipoFuncionario = new TipoFuncionario(1, "Docente"), Versao = 1, Contactos = new[] { Contacto.CriaExtensao("1234") } }; var tipos = new[] { new TipoFuncionario(1, "Docente") }; "Dado um controlador" .Given(() => controlador = _container.Create <FuncionariosController>()); "e um id pesquisa" .And(() => id = 1); "e alguns mocks" .And(() => { var tran = _container.GetMock <ITransaction>(); _container.GetMock <ISession>() .Setup(s => s.BeginTransaction()) .Returns(tran.Object); tran.Setup(t => t.Dispose()); _container.GetMock <IGestorRelatorios>() .Setup(g => g.ObtemFuncionario(id)) .Returns(funcionario); _container.GetMock <IGestorRelatorios>() .Setup(g => g.ObtemTodosTiposFuncionarios()) .Returns(tipos); }); "Quando efetuamos uma pesquisa" .When(() => resultado = controlador.Funcionario(id)); "Então devemos obter a vista e dados esperados" .Then(() => { resultado.Should().BeAssignableTo <ViewResult>(); var model = ((ViewResult)resultado).Model as DadosFormularioFuncionario; model.Funcionario.Should().BeSameAs(funcionario); model.TiposFuncionario.Should().BeSameAs(tipos); }); "E mocks devem ter sido usados" .And(() => { _container.GetMock <ISession>().VerifyAll(); _container.GetMock <ITransaction>().VerifyAll(); }); }