public void DeveRetornarExceptionQuandoValorForInvalido(decimal valorInvalido) { var exception = Record.Exception(() => Renda.CriarNovo(valorInvalido)); Assert.NotNull(exception); Assert.IsType <RendaNaoDevePossuirValorNegativoException>(exception); }
private Familia CriarCenarioComDependentesMenoresDeIdade() { var familiaComDoisDependentesMenoresDeIdade = FamiliaFactory.Criar( Status); FamiliaFactory.CriarPessoa( familiaComDoisDependentesMenoresDeIdade, Nome.CriarNovo("Pretendente"), Idade.CriarNovo(new DateTime(1997, 10, 25)), Tipo.Pretendente, Renda.CriarNovo(1000)); FamiliaFactory.CriarPessoa( familiaComDoisDependentesMenoresDeIdade, Nome.CriarNovo("Conjugue"), Idade.CriarNovo(new DateTime(1997, 01, 01)), Tipo.Conjuge, Renda.CriarNovo(500)); FamiliaFactory.CriarPessoa( familiaComDoisDependentesMenoresDeIdade, Nome.CriarNovo("Dependente 1"), Idade.CriarNovo(new DateTime(2010, 01, 01)), Tipo.Dependente); FamiliaFactory.CriarPessoa( familiaComDoisDependentesMenoresDeIdade, Nome.CriarNovo("Dependente 2"), Idade.CriarNovo(new DateTime(2010, 01, 01)), Tipo.Dependente); return(familiaComDoisDependentesMenoresDeIdade); }
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()); }
public void Configure(EntityTypeBuilder <Pessoa> builder) { builder.ToTable("Pessoas"); builder.Property(p => p.Id) .HasConversion( v => v.ToGuid(), v => new PessoaId(v)) .IsRequired(); builder.Property(p => p.Nome) .HasConversion( v => v.ToString(), v => Nome.CriarNovo(v)) .IsRequired(); builder.Property(p => p.Idade) .HasColumnName("DataDeNascimento") .HasConversion( v => v.DataDeNascimento, v => Idade.CriarNovo(v)) .IsRequired(); builder.Property(p => p.Renda) .HasConversion( v => v.Valor.ToDecimal(), v => Renda.CriarNovo(v)) .IsRequired(false); builder.Property(p => p.Tipo); builder.HasOne(p => p.Familia) .WithMany(p => p.Pessoas) .HasForeignKey(p => p.FamiliaId); }