Exemple #1
0
        public void Deve_adicionar_pessoa_na_familia()
        {
            const int quantidadeDePessoasEsperadas = 1;
            var       familia = FamiliaBuilder.UmaFamilia().Build();
            var       pessoa  = PessoaBuilder.UmaPessoa().Build();

            familia.Adicionar(pessoa);

            var quantidadeDePessoasObtidas = familia.Pessoas.Count();

            Assert.Equal(quantidadeDePessoasEsperadas, quantidadeDePessoasObtidas);
        }
Exemple #2
0
        public void Deve_pontuar_familia_quando_criterio_for_atendido(
            int anoDeNascimento, int mesDeNascimento, int diaDeNascimento)
        {
            const int pontuacaoEsperada        = 3;
            var       dataDeNascimentoDe45Anos = new DateTime(anoDeNascimento, mesDeNascimento, diaDeNascimento);
            var       pessoaUm = PessoaBuilder.UmaPessoa().ComDataDeNascimento(dataDeNascimentoDe45Anos).Build();
            var       pessoas  = new[] { pessoaUm, _pessoaDois };
            var       familia  = FluentBuilder <Familia> .New().WithCollection(f => f.Pessoas, pessoas).Build();

            var pontuacaoObtida = _criterioDePretendetenComIdadeMaiorIgualA45Anos.EhAtendidoPela(familia);

            Assert.Equal(pontuacaoEsperada, pontuacaoObtida);
        }
        public void Deve_Lancar_Exception_Se_ChefeDeServico_E_Oficial_Ficarem_A_Sos()
        {
            var localBuilder  = new LocalBuilder();
            var local         = localBuilder.SetDescricao("Local Teste").Create();
            var pessoaBuilder = new PessoaBuilder();

            local.AdicionarPessoa(pessoaBuilder.SetNome("Jorge").SetTipoPessoa(TipoPessoa.ChefeDeServico).Create());
            local.AdicionarPessoa(pessoaBuilder.SetNome("Mateus").SetTipoPessoa(TipoPessoa.Oficial).Create());

            var ex = Assert.Throws <Exception>(() => _validacaoTransporte.RestricoesLocal(local));

            Assert.Equal("Chefe de Servico e Oficial não podem ficar a sós.", ex.Message);
        }
        public void Deve_Lancar_Exception_Se_Piloto_E_Comissaria_Ficarem_A_Sos()
        {
            var localBuilder  = new LocalBuilder();
            var local         = localBuilder.SetDescricao("Local Teste").Create();
            var pessoaBuilder = new PessoaBuilder();

            local.AdicionarPessoa(pessoaBuilder.SetNome("Jorge").SetTipoPessoa(TipoPessoa.Piloto).Create());
            local.AdicionarPessoa(pessoaBuilder.SetNome("Mateus").SetTipoPessoa(TipoPessoa.Comissaria).Create());

            var ex = Assert.Throws <Exception>(() => _validacaoTransporte.RestricoesLocal(local));

            Assert.Equal("Piloto e Comissária não podem ficar a sós.", ex.Message);
        }
Exemple #5
0
        public void Deve_pontuar_familia_quando_criterio_for_atendido(int anoDeNascimento, int mesDeNascimento, int diaDeNascimento)
        {
            const int pontuacaoEsperada = 1;
            var       dataDeNascimento  = new DateTime(anoDeNascimento, mesDeNascimento, diaDeNascimento);
            var       pretendente       = PessoaBuilder.UmaPessoa().ComTipo(TipoDePessoa.Pretendete)
                                          .ComDataDeNascimento(dataDeNascimento).Build();
            var pessoas = new[] { pretendente };
            var familia = FluentBuilder <Familia> .New().WithCollection(f => f.Pessoas, pessoas).Build();

            var pontuacaoObtida = _criterio.EhAtendidoPela(familia);

            Assert.Equal(pontuacaoEsperada, pontuacaoObtida);
        }
Exemple #6
0
        public async Task IncluirListaDePessoasERetornaVerdadeiroSeRegistrosInseridos()
        {
            var options = new DbContextOptionsBuilder <DatabaseContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            var repository = new PessoaRepository(new(options));

            var pessoasBuilder = new PessoaBuilder()
                                 .BuildListState();

            var pessoasIncluidas = await repository.IncluirListaAsync(pessoasBuilder);

            Assert.True(pessoasIncluidas);
        }
        public void Deve_Lancar_Exception_Se_Presidiario_Ficar_Sem_Policial()
        {
            var localBuilder  = new LocalBuilder();
            var local         = localBuilder.SetDescricao("Local Teste").Create();
            var pessoaBuilder = new PessoaBuilder();

            local.AdicionarPessoa(pessoaBuilder.SetNome("Jorge").SetTipoPessoa(TipoPessoa.Presidiario).Create());
            local.AdicionarPessoa(pessoaBuilder.SetNome("Mateus").SetTipoPessoa(TipoPessoa.Oficial).Create());
            local.AdicionarPessoa(pessoaBuilder.SetNome("Bruno").SetTipoPessoa(TipoPessoa.Oficial).Create());
            local.AdicionarPessoa(pessoaBuilder.SetNome("Marrone").SetTipoPessoa(TipoPessoa.Piloto).Create());

            var ex = Assert.Throws <Exception>(() => _validacaoTransporte.RestricoesLocal(local));

            Assert.Equal("O Presidiário não pode ficar sem a presença do Policial.", ex.Message);
        }
Exemple #8
0
        public async Task IncluirPessoaERetornaNovoIdDaPessoaIncluidaEVerdadeiroSepessoaIncluida()
        {
            var options = new DbContextOptionsBuilder <DatabaseContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            var repository = new PessoaRepository(new(options));

            var pessoaBuilder = new PessoaBuilder()
                                .BuildSingleState();

            var pessoaIncluida = await repository.IncluirAsync(pessoaBuilder);

            Assert.Equal(1, pessoaBuilder.Id);
            Assert.True(pessoaIncluida);
        }
Exemple #9
0
        public async Task PesquisarPorIdERetornaPessoa()
        {
            var options = new DbContextOptionsBuilder <DatabaseContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            var repository = new PessoaRepository(new(options));

            var pessoasBuilder = new PessoaBuilder()
                                 .BuildListState();

            await repository.IncluirListaAsync(pessoasBuilder);

            var buscaPessoa = await repository.PesquisarIdAsync(2);

            Assert.Equal("Henrique Casagrande dos Santos Alves", buscaPessoa.Nome);
        }
Exemple #10
0
        public async Task RetornaListaDeTodasAsPessoas()
        {
            var options = new DbContextOptionsBuilder <DatabaseContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            var repository = new PessoaRepository(new(options));

            var pessoasBuilder = new PessoaBuilder()
                                 .BuildListState();

            await repository.IncluirListaAsync(pessoasBuilder);

            var totalDeRegistrosInseridos = await repository.Todos();

            Assert.True(totalDeRegistrosInseridos.ToList().Count > 1);
        }
Exemple #11
0
        public void Deve_pontuar_familia_quando_tiver_um_filho_menor_de_idade()
        {
            const int pontuacaoEsperada        = 2;
            var       dependenteMenorDeIdadeUm = PessoaBuilder.UmaPessoa()
                                                 .ComTipo(TipoDePessoa.Dependente)
                                                 .ComDataDeNascimento(new DateTime(2006, 12, 1))
                                                 .Build();
            var pretendente = PessoaBuilder.UmaPessoa().ComTipo(TipoDePessoa.Pretendete).Build();
            var pessoas     = new[]
            { dependenteMenorDeIdadeUm, pretendente };
            var familia = FluentBuilder <Familia> .New()
                          .WithCollection(f => f.Pessoas, pessoas)
                          .Build();

            var pontuacaoObtida = _criterio.EhAtendidoPela(familia);

            Assert.Equal(pontuacaoEsperada, pontuacaoObtida);
        }
Exemple #12
0
        public async void ExcluirPessoa()
        {
            var options = new DbContextOptionsBuilder <DatabaseContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            var repository = new PessoaRepository(new(options));

            var pessoasBuilder = new PessoaBuilder()
                                 .BuildListState();

            await repository.IncluirListaAsync(pessoasBuilder);

            await repository.ExcluirAsync(1);

            var pesquisaPessoa = await repository.PesquisarIdAsync(1);

            Assert.Null(pesquisaPessoa);
        }
 private void ObterProposta()
 {
     _proposta = PropostaBuilder.UmaProposta()
                 .Padrao()
                 .Com(DadosPagamentoBuilder.UmPagamento())
                 .Com(ProponenteBuider.UmProponente().ComMatricula(20)
                      .Com(PessoaBuilder.UmaPessoa().ComMatricula(IdentificadoresPadrao.Matricula)))
                 .Com(ProdutoBuilder.UmProduto()
                      .ComMatricula(IdentificadoresPadrao.Matricula)
                      .ComInscricao(IdentificadoresPadrao.InscricaoId)
                      .Com(BeneficiarioBuilder.UmBeneficiario())
                      .Com(CoberturaBuilder.UmaCobertura()
                           .ComItemCertificadoApolice(IdentificadoresPadrao.ItemCertificadoApoliceId)
                           .ComItemProdutoId(IdentificadoresPadrao.ItemProdutoId)
                           .Com(ContratacaoBuilder.UmaContratacao()
                                .ComTipoFormaContratacao(TipoFormaContratacaoEnum.RendaMensal)
                                .ComTipoRenda(TipoDeRendaEnum.NaoSeAplica))
                           )
                      ).Build();
 }
        static void Main(string[] args)
        {
            var localBuilder = new LocalBuilder();
            var origem       = localBuilder.SetDescricao("Terminal").Create();

            var pessoaBuilder = new PessoaBuilder();

            origem.AdicionarPessoa(pessoaBuilder.SetNome("Robin").SetTipoPessoa(TipoPessoa.Policial).Create());
            origem.AdicionarPessoa(pessoaBuilder.SetNome("Batgirl").SetTipoPessoa(TipoPessoa.Comissaria).Create());
            origem.AdicionarPessoa(pessoaBuilder.SetNome("Wolverine").SetTipoPessoa(TipoPessoa.Oficial).Create());
            origem.AdicionarPessoa(pessoaBuilder.SetNome("Goku").SetTipoPessoa(TipoPessoa.Oficial).Create());
            origem.AdicionarPessoa(pessoaBuilder.SetNome("Flash").SetTipoPessoa(TipoPessoa.ChefeDeServico).Create());
            origem.AdicionarPessoa(pessoaBuilder.SetNome("Wonderwoman").SetTipoPessoa(TipoPessoa.Comissaria).Create());
            origem.AdicionarPessoa(pessoaBuilder.SetNome("Seiya").SetTipoPessoa(TipoPessoa.Presidiario).Create());
            origem.AdicionarPessoa(pessoaBuilder.SetNome("Allejo").SetTipoPessoa(TipoPessoa.Piloto).Create());

            var destino = localBuilder.SetDescricao("Avião").Create();

            new Transporte().ExecutarTransporte(origem, destino);
            Console.ReadKey();
        }
Exemple #15
0
        public async void AlteraDadosDaPessoa()
        {
            var options = new DbContextOptionsBuilder <DatabaseContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            var repository = new PessoaRepository(new(options));

            var pessoasBuilder = new PessoaBuilder()
                                 .BuildListState();

            await repository.IncluirListaAsync(pessoasBuilder);

            var pesquisaPessoa = await repository.PesquisarIdAsync(2);

            pesquisaPessoa.Nome = "Fulano foi alterado";

            await repository.AlterarAsync(pesquisaPessoa);

            pesquisaPessoa = await repository.PesquisarIdAsync(2);

            Assert.Equal("Fulano foi alterado", pesquisaPessoa.Nome);
        }