public void Gera_erro_se_email_estiver_errado(Action criacao, Exception excecaoEsperada) { "Dada uma operação de criação de um email" .Given(() => criacao = () => Contacto.CriaEmail("123ddd123")); "Quando a executarmos" .When(() => { try { criacao(); } catch (Exception e) { excecaoEsperada = e; } }); "A sua execução deve gerar erro" .Then(() => Assert.NotNull(excecaoEsperada)); }
public void Cria_telefone_se_Email_estiver_certo(Action criacao, Exception excecaoEsperada) { "Dada uma operação de criação de um email" .Given(() => criacao = () => Contacto.CriaEmail("*****@*****.**")); "Quando a executarmos" .When(() => { try { criacao(); } catch (Exception e) { excecaoEsperada = e; } }); "A sua execução deve gerar erro" .Then(() => Assert.Null(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 Nao_funciona_com_versoes_diferentes(Funcionario funcionario, ModificaContactosFuncionario 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 ModificaContactosFuncionario(1, 1, new Contacto[] { Contacto.CriaEmail("*****@*****.**"), Contacto.CriaExtensao("1234") }, null)); "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 Nao_duplica_contactos(Funcionario funcionario, ModificaContactosFuncionario comando) { "Dado um funcionário existente" .Given(() => funcionario = Funcionario.CriaNovo(new CriaFuncionario("Luis", "123456789", new TipoFuncionario(1, "Docente"), new[] { Contacto.CriaTelefone("123123123") }, 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().HaveCount(2).And.Contain(comando.ContactosAdicionar)); }