public void Comparacao_deve_funcionar_com_um_null(Contacto tel1, Contacto tel2, bool iguais) { "Quando recebe um Contacto válido e outro null" .Given(() => tel1 = Contacto.CriaTelefone("123123123")); "E procedemos à comparação" .When(() => iguais = tel1 == tel2); "Então o resultado deve ser false" .Then(() => iguais.Should().BeFalse()); }
public void Dois_Contactos_iguais_produzem_mesmo_hash(Contacto tel1, Contacto tel2, bool iguais) { "Quando recebe um Contacto válido" .Given(() => tel1 = Contacto.CriaTelefone("123123123")); "E outro com número diferente" .And(() => tel2 = Contacto.CriaTelefone("123123123")); "E procedemos à comparação" .When(() => iguais = tel1.GetHashCode() == tel2.GetHashCode()); "Então o resultado deve ser true" .Then(() => iguais.Should().BeTrue()); }
public void Comparacao_deve_funcionar_com_dois_Contactos_diferentes(Contacto tel1, Contacto tel2, bool iguais) { "Quando recebe um Contacto válido" .Given(() => tel1 = Contacto.CriaTelefone("123123123")); "E outro com número diferente" .And(() => tel2 = Contacto.CriaTelefone("222222222")); "E procedemos à comparação" .When(() => iguais = tel1 == tel2); "Então o resultado deve ser false" .Then(() => iguais.Should().BeFalse()); }
public void Gera_erro_se_numero_telefone_tiver_letras(Action criacao, Exception excecaoEsperada) { "Dada uma operação de criação de um telefone" .Given(() => criacao = () => Contacto.CriaTelefone("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_funcionario_a_partir_comando(CriaFuncionario comando, Funcionario funcionario) { "Quando recebemos um comando de criação" .Given(() => comando = new CriaFuncionario("luis", "123456789", new TipoFuncionario(1, "teste"), new[] { Contacto.CriaTelefone("123456789") })); "E aplicamos esse comando" .When(() => funcionario = Funcionario.CriaNovo(comando)); "Então obtemos um funcionário válido" .Then(() => { Assert.NotNull(funcionario); funcionario.Nome.Should().Be(comando.Nome); funcionario.Nif.Should().Be(comando.Nif); funcionario.TipoFuncionario.Should().Be(comando.TipoFuncionario); funcionario.Contactos.Should().BeEquivalentTo(comando.Contactos); }); }
public void Mapeamento_funcionario_correto() { var tipoFuncionario = new TipoFuncionario(100, "Teste"); var funcionario = Funcionario.CriaNovo(new CriaFuncionario("Luis", "123456789", tipoFuncionario, new[] { Contacto.CriaTelefone("123456789") })); new GestorTransacoesTestes().ExecutaTransacao((sess, tran) => { sess.Save(tipoFuncionario); sess.Flush(); new PersistenceSpecification <Funcionario>(sess) .VerifyTheMappings(funcionario); Assert.True(true); }); }
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)); }