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);
            });
        }
Beispiel #7
0
        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));
        }