예제 #1
0
        public void Get_CompraFamiliaTest()
        {
            var _service    = new Mock <FamiliaService>();
            var _controller = new FamiliaController(_service.Object);

            //NombreFamilia, FechaInicio, FechaFinal
            //FamiliaId, TiendaId, ProductoId, Cantidad, FechaCompra

            var familia = new FamiliaDto
            {
                FamiliaId = 1,
                Nombre    = "FamiliaPrueba",
                Dni       = "77634087",
                Compras   = new List <CompraDto> {
                    new CompraDto
                    {
                        TiendaId   = 1,
                        ProductoId = 001,
                        Cantidad   = 15,
                        //FechaCompra =  2020-05-22 14:17:16
                    }
                }
            };

            //var result = _controller.GetCompras("FamiliaPrueba", '2010-05-22 14:17', '2010-05-22 14:16');
            // Assert
            //Assert.IsType<OkObjectResult>(familia);
        }
        public async Task DeveInserirFamilia()
        {
            //Given
            var pessoaId = Guid.NewGuid();
            var dto      = new FamiliaDto
            {
                Pessoas = new List <PessoaDto>
                {
                    new PessoaDto
                    {
                        Id                    = pessoaId,
                        Nome                  = _faker.Person.FullName,
                        DataDeNascimento      = _faker.Date.Past().Date,
                        DescricaoTipoDaPessoa = "Cônjuge"
                    },
                },
                RendaPorPessoas = new List <RendaPorPessoaDto>
                {
                    new RendaPorPessoaDto
                    {
                        Id       = Guid.NewGuid(),
                        PessoaId = pessoaId,
                        Valor    = _faker.Random.Decimal(35)
                    },
                }
            };

            var(response, retorno) = await PostFamilia(dto);

            //Then
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.NotNull(retorno);
            Assert.Equal(0, dto.Status); //Cadastro completo
        }
예제 #3
0
        public async Task <Resultado> Cadastrar(FamiliaDto familiaDto)
        {
            var status = await _familiaRepository.ObterStatus(familiaDto.StatusId);

            var familia = _familiaFactory.Criar(status);

            foreach (var pessoa in familiaDto.Pessoas)
            {
                familia.CriarPessoa(
                    Nome.CriarNovo(pessoa.Nome),
                    Idade.CriarNovo(pessoa.DataDeNascimento),
                    pessoa.Tipo,
                    pessoa.Renda.HasValue ? Renda.CriarNovo(pessoa.Renda.Value) : null);
            }
            if (!familia.Validar())
            {
                return(Resultado.Erro("Familia deve possuir apenas um pretendente e apenas um cônjuge."));
            }

            await _familiaRepository.Adicionar(familia);

            if (familia.Status.CadastroValido)
            {
                await _calculoDePontosDosCriteriosAtendidos.Executar(familia);
            }

            return(Resultado.OK());
        }
예제 #4
0
        public void Add_InvalidObjectPassed_ReturnBadRequest()
        {
            var _service    = new Mock <FamiliaService>();
            var _controller = new FamiliaController(_service.Object);

            // Arrange
            FamiliaCreateDto modelCreateDto = new FamiliaCreateDto
            {
                FamiliaNombre     = "RiverdaleFam77",
                Dni               = "12345677",
                AceptaSolicitudes = true
            };

            FamiliaDto modelDto = new FamiliaDto
            {
                Nombre = "RiverdaleFam77"
            };

            _service.Setup(x => x.Create(modelCreateDto)).Returns(modelCreateDto);

            // Act
            ActionResult result = _controller.Create(modelCreateDto);

            Assert.Equal("RiverdaleFam77", modelCreateDto.FamiliaNombre);
        }
        private bool ValidarDto(FamiliaDto dto)
        {
            if (dto == null)
            {
                Notificador.Notificar("Dto", FamiliaDicionarioDeMensagensDeValidacao.MensagemDtoInvalido);
                return(false);
            }

            return(true);
        }
예제 #6
0
        public async Task <IActionResult> Cadastrar(FamiliaDto familiaDto)
        {
            var resultado = await _cadastroDeFamilia.Cadastrar(familiaDto);

            if (resultado.Falhou)
            {
                return(BadRequest(resultado.MensagemDeErro));
            }

            return(Ok());
        }
        public IHttpActionResult CreateFamilia(FamiliaDto familiaDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var familia = Mapper.Map <FamiliaDto, Familia>(familiaDto);

            _context.Familias.Add(familia);
            _context.SaveChanges();

            familiaDto.Id = familia.Id;
            return(Created(new Uri(Request.RequestUri + "/" + familia.Id), familiaDto));
        }
        private async Task <(HttpResponseMessage, FamiliaDto)> PostFamilia(FamiliaDto dto)
        {
            var json = JsonConvert.SerializeObject(dto);
            var data = new StringContent(json, Encoding.UTF8, "application/json");

            var response = await _client.PostAsync("/api/familia", data);

            response.EnsureSuccessStatusCode();
            var responseString = await response.Content.ReadAsStringAsync();

            return(
                response,
                JsonConvert.DeserializeObject <FamiliaDto>(responseString)
                );
        }
예제 #9
0
        public void Get_NotContentFamiliaTest()
        {
            var _service    = new Mock <FamiliaService>();
            var _controller = new FamiliaController(_service.Object);

            //
            FamiliaDto familia = new FamiliaDto
            {
                Nombre    = "RiverdaleFam11",
                FamiliaId = 100
            };

            var result = _controller.GetFamilia(778);
            //Assert
            //Assert.IsType<NoContentResult>(result);
        }
예제 #10
0
        public void Get_FamiliaTest()
        {
            var _service    = new Mock <FamiliaService>();
            var _controller = new FamiliaController(_service.Object);

            //
            FamiliaDto familia = new FamiliaDto
            {
                Nombre    = "RiverdaleFam77",
                FamiliaId = 100
            };

            var result = _controller.GetFamilia(100);

            //Assert
            Assert.IsType <OkObjectResult>(result);
        }
예제 #11
0
        public void Get_UsuariosTest()
        {
            var _service    = new Mock <FamiliaService>();
            var _controller = new FamiliaController(_service.Object);

            //Arrange
            var familia = new FamiliaDto
            {
                FamiliaId       = 1,
                Nombre          = "Familia1",
                Dni             = "18976453",
                UsuarioFamilias = new List <UsuarioFamiliaDto> {
                    new UsuarioFamiliaDto {
                        Usuario = new UsuarioDto {
                            Dni             = "18976453",
                            Nombre          = "Pepito",
                            ApellidoMaterno = "Pérez",
                            ApellidoPaterno = "Cieza",
                            Contrasena      = "343rf2d",
                            RolUsuarios     = new List <RolUsuarioDto> {
                                new RolUsuarioDto {
                                    RolPerfil = new RolPerfilDto {
                                        RolPerfilId = 1,
                                        Descripcion = "Administrador",
                                        Perfil      = new PerfilDto {
                                            PerfilId    = 1,
                                            Descripcion = "Grupo Familiar"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            };

            var firstUser = familia.UsuarioFamilias.First().Usuario;
            //_service.Setup(x => x.GetByFamiliaNombre("Familia1")).Returns(familia);

            //act
            var result = _controller.GetUsuariosByNombreFamilia("Familia1");

            // Assert
            Assert.IsType <OkObjectResult>(result);
        }
        public void UpdateFamilia(int id, FamiliaDto familiaToUpdate)
        {
            if (!ModelState.IsValid)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            var familia = _context.Familias.SingleOrDefault(f => f.Id == id);

            if (familia == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }

            Mapper.Map(familiaToUpdate, familia);

            _context.SaveChanges();
        }
예제 #13
0
        public void Deve_mapear_uma_familia()
        {
            var          id          = Guid.NewGuid();
            const Status status      = Status.CadastroValido;
            var          pessoaUmDto = new PessoaDto
            {
                DataDeNascimento = new DateTime(1997, 07, 03),
                Id   = id,
                Nome = "Maria",
                Tipo = TipoDePessoa.Conjuge
            };
            var pessoaDoisDto = new PessoaDto
            {
                DataDeNascimento = new DateTime(1996, 06, 17),
                Id   = id,
                Nome = "João",
                Tipo = TipoDePessoa.Pretendete
            };
            var pessoas    = new[] { pessoaDoisDto, pessoaUmDto };
            var rendaUmDto = new RendaDto {
                IdPessoa = id, Valor = 500
            };
            var rendaDoisDto = new RendaDto {
                IdPessoa = id, Valor = 800
            };
            var rendas     = new[] { rendaDoisDto, rendaUmDto };
            var familiaDto = new FamiliaDto
            {
                Id      = id,
                Pessoas = pessoas,
                Rendas  = rendas,
                Status  = status
            };
            var familiaEsperada = new
            {
                Id     = id,
                Status = status
            };

            var familiaObtida = MapeadorDeFamilia.Mapear(familiaDto);

            familiaEsperada.ToExpectedObject().ShouldMatch(familiaObtida);
        }
예제 #14
0
        public void Get_RemoveFamiliaReturnBadRequest()
        {
            var _service    = new Mock <FamiliaService>();
            var _controller = new FamiliaController(_service.Object);

            //String nombreFamilia, string Dni
            var familia = new FamiliaDto
            {
                FamiliaId       = 1,
                Nombre          = "FamiliaPrueba",
                Dni             = "77102417",
                UsuarioFamilias = new List <UsuarioFamiliaDto> {
                    new UsuarioFamiliaDto {
                        Usuario = new UsuarioDto {
                            Dni             = "09102417",
                            Nombre          = "Coco",
                            ApellidoMaterno = "Nut",
                            ApellidoPaterno = "Sunn",
                            Contrasena      = "1ab2c3d",
                            RolUsuarios     = new List <RolUsuarioDto> {
                                new RolUsuarioDto {
                                    RolPerfil = new RolPerfilDto {
                                        RolPerfilId = 2,
                                        Descripcion = "Miembro Grupo Familiar",
                                        Perfil      = new PerfilDto {
                                            PerfilId    = 1,
                                            Descripcion = "Grupo Familiar"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            };

            var result = _controller.Remove("FamiliaPruebaBien", "77634087");

            // Assert
            Assert.IsType <OkObjectResult>(result);
            //Assert.IsType<BadRequestResult>(result);
        }
예제 #15
0
        public static Familia Mapear(FamiliaDto familiaDto)
        {
            var pessoas = familiaDto.Pessoas.Select(MapeadorDePessoa.Mapear).ToList();

            foreach (var rendaDto in familiaDto.Rendas)
            {
                var renda = MapeadorDeRenda.Mapear(rendaDto.Valor);
                var pessoaQueDeveTerRendaAdicionada = pessoas.First(p => p.Id == rendaDto.IdPessoa);
                pessoaQueDeveTerRendaAdicionada.Adicionar(renda);
            }

            var familia = new Familia(familiaDto.Id, familiaDto.Status);

            foreach (var pessoa in pessoas)
            {
                familia.Adicionar(pessoa);
            }

            return(familia);
        }
        public async Task <FamiliaDto> Armazenar(FamiliaDto dto)
        {
            if (!ValidarDto(dto))
            {
                return(null);
            }

            if (!ValidarPessoas(dto.Pessoas))
            {
                return(null);
            }

            if (!ValidarRendaPorPessoas(dto.RendaPorPessoas))
            {
                return(null);
            }

            if (await ValidarSeHaPessoasJahInformadasEmOutraFamilia(dto.Pessoas))
            {
                return(null);
            }

            var familia = new Familia(
                InstanciaPessoas(dto.Pessoas),
                InstanciaRendaPorPessoas(dto.RendaPorPessoas)
                );

            if (familia.Invalid)
            {
                Notificador.Notificar(familia.Notificacoes);
                return(null);
            }

            await _familiaRepositorio.Incluir(familia);

            await _familiaRepositorio.Salvar();

            return(MontarDtoDeRetorno(familia));
        }
        public async Task <FamiliaDto> Armazenar(FamiliaDto dto)
        {
            if (!ValidarDto(dto))
            {
                return(null);
            }

            if (!ValidarPessoas(dto.Pessoas))
            {
                return(null);
            }

            if (!ValidarRendaPorPessoas(dto.RendaPorPessoas))
            {
                return(null);
            }

            var familia = new Familia(
                dto.Id,
                InstanciaPessoas(dto.Pessoas),
                InstanciaRendaPorPessoas(dto.RendaPorPessoas),
                dto.Status
                );

            var pontuacaoPorFamilia = new PontuacaoPorFamilia(familia);

            if (pontuacaoPorFamilia.Invalid)
            {
                Notificador.Notificar(pontuacaoPorFamilia.Notificacoes);
                return(null);
            }

            await _pontuacaoPorFamiliaRepositorio.Incluir(pontuacaoPorFamilia);

            await _pontuacaoPorFamiliaRepositorio.Salvar();

            return(MontarDtoDeRetorno(pontuacaoPorFamilia));
        }
예제 #18
0
        public ClassificacaoDeFamiliasTestes()
        {
            _criterioRepositorio        = new Mock <ICriterioRepositorio>();
            _comunicacaoComContemplados = new Mock <IComunicacaoComContemplados>();
            _classificacaoDeFamilias    = new ClassificacaoDeFamilias(_criterioRepositorio.Object, _comunicacaoComContemplados.Object);
            _idFamilia     = new Guid("12345678-1234-4567-8901-012345678912");
            _idFamiliaDois = new Guid("12345678-1234-4567-8901-012345678921");
            var          idPessoaUm   = new Guid("12345678-1234-4567-8901-012345679812");
            var          idPessoaDois = new Guid("12345678-1234-4567-8901-102345678912");
            var          idPessoaTres = new Guid("12345678-1234-4567-8901-012346578912");
            const Status status       = Status.CadastroValido;

            _pessoaUmDto = new PessoaDto
            {
                DataDeNascimento = new DateTime(1997, 07, 03),
                Id   = idPessoaUm,
                Nome = "Maria",
                Tipo = TipoDePessoa.Conjuge
            };
            _pessoaDoisDto = new PessoaDto
            {
                DataDeNascimento = new DateTime(1996, 06, 17),
                Id   = idPessoaDois,
                Nome = "João",
                Tipo = TipoDePessoa.Pretendete
            };
            _pessoaTresDto = new PessoaDto
            {
                DataDeNascimento = new DateTime(1999, 06, 17),
                Id   = idPessoaTres,
                Nome = "Karina",
                Tipo = TipoDePessoa.Pretendete
            };
            _pessoasDaFamiliaUm = new[] { _pessoaUmDto, _pessoaDoisDto };
            _rendaUmDto         = new RendaDto {
                IdPessoa = idPessoaUm, Valor = 500
            };
            _rendaDoisDto = new RendaDto {
                IdPessoa = idPessoaDois, Valor = 800
            };
            _rendaTresDto = new RendaDto {
                IdPessoa = idPessoaTres, Valor = 500
            };
            var rendasDaFamiliaUm = new[] { _rendaDoisDto, _rendaUmDto };

            _familiaUm = new FamiliaDto
            {
                Id      = _idFamilia,
                Pessoas = _pessoasDaFamiliaUm,
                Rendas  = rendasDaFamiliaUm,
                Status  = status
            };
            _pessoasDaFamiliaDois = new[] { _pessoaTresDto };
            var rendasDaFamiliaDois = new[] { _rendaTresDto };

            _familiaDois = new FamiliaDto
            {
                Id      = _idFamiliaDois,
                Pessoas = _pessoasDaFamiliaDois,
                Rendas  = rendasDaFamiliaDois,
                Status  = status
            };
            _criterioDeRendaInferiorA900    = new CriterioDeRendaInferiorA900();
            _criterioDeRendaEntre901Ah1500  = new CriterioDeRendaEntre901Ah1500();
            _criterioDeRendaEntre1501Ah2000 = new CriterioDeRendaEntre1501Ah2000();
            _criterioDePretendenteComIdadeEntre30Ah44Anos     = new CriterioDePretendenteComIdadeEntre30Ah44Anos();
            _criterioDePretendenteComIdadeInferiorA30Anos     = new CriterioDePretendenteComIdadeInferiorA30Anos();
            _criterioDePretendenteComIdadeIgualOuMaiorA45Anos = new CriterioDePretendenteComIdadeIgualOuMaiorA45Anos();
            _criterioDe1Ou2DependentesMenoresDeIdade          = new CriterioDe1Ou2DependentesMenoresDeIdade();
            _criterioDe3OuMaisDependentesMenoresDeIdade       = new CriterioDe3OuMaisDependentesMenoresDeIdade();
            var criterios = new Criterio[] { _criterioDeRendaInferiorA900, _criterioDeRendaEntre901Ah1500,
                                             _criterioDeRendaEntre1501Ah2000, _criterioDePretendenteComIdadeEntre30Ah44Anos,
                                             _criterioDePretendenteComIdadeInferiorA30Anos, _criterioDePretendenteComIdadeIgualOuMaiorA45Anos,
                                             _criterioDe1Ou2DependentesMenoresDeIdade, _criterioDe3OuMaisDependentesMenoresDeIdade };

            _criterioRepositorio.Setup(cr => cr.ObterTodos()).Returns(criterios);
        }
예제 #19
0
 public async Task <ActionResult> Salvar([FromServices] IArmazenadorDePontuacaoPorFamilia servico, [FromBody] FamiliaDto dto) =>
 Ok(await servico.Armazenar(dto));