public void NaoDeveAdicionarProdutoEmUmaVendaQuandoVendaNaoExiste() { var clienteExpected = ClienteBuilder.NewInstance().WithId(CLIENTE_ID_EXISTS).Build(); var produtoExpectedOne = ProdutoBuilder .NewInstance() .WithId(PRODUTO_ID_EXISTS_ONE) .WithPrecoVenda(10) .Build(); var produtoExpectedTwo = ProdutoBuilder .NewInstance() .WithId(PRODUTO_ID_EXISTS_TWO) .WithPrecoVenda(5) .Build(); vendaRepositoryMock .Setup(r => r.Salvar(It.IsAny <Venda>())) .Callback <Venda>(v => { v.Id = 2; }); var venda = vendaService.Iniciar(clienteExpected, produtoExpectedOne, 1); var exception = Assert.Throws <DomainException>(() => vendaService.AdicionarProduto(venda, produtoExpectedTwo, 1)); Assert.Equal($"Venda {venda.Id} não existe.", exception.Message); }
public void Dado_uma_Proposta_com_matricula_igual_do_conjuge_deve_Adicionar_dados_do_conjuge() { _proposta = PropostaBuilder.UmaProposta() .Padrao() .Com(DadosPagamentoBuilder.UmPagamento()) .Com(ProponenteBuider.UmProponente().Padrao() .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) .ComInicioVigencia(IdentificadoresPadrao.DataInicioVigencia) .Com(ContratacaoBuilder.UmaContratacao() .ComTipoFormaContratacao(TipoFormaContratacaoEnum.RendaMensal) .ComTipoRenda(TipoDeRendaEnum.NaoSeAplica)) ) ).Build(); var eventoImplantacao = _proposta.ToEvento(); var coberturaContratada = eventoImplantacao.Coberturas.First(); Assert.AreEqual(_proposta.Proponente.Conjuge.Matricula, coberturaContratada.Matricula); }
private void CriarProposta(ImplantacaoParam param, long itemCertificadoApolice) { _proposta = PropostaBuilder.UmaProposta().Padrao().Padrao() .ComIdentificador(_param.Identificador) .ComDataAssinatura(_param.DataInicioVigencia.AddMonths(6)) .Com(DadosPagamentoBuilder.UmPagamento() .ComPeriodicidade(ObterPeriodicidade(_param.Periodicidade))) .Com(ProponenteBuider.UmProponente().Padrao() .ComDataNascimento(_param.DataNascimento) .ComMatricula(_param.Matricula) .ComSexo(_param.Sexo)) .Com(ProdutoBuilder.UmProduto().Padrao() .ComMatricula(IdentificadoresPadrao.Matricula) .ComCodigo(IdentificadoresPadrao.ProdutoId) .ComInscricao(_param.InscricaoId) .Com(BeneficiarioBuilder.UmBeneficiario().Padrao()) .Com(CoberturaBuilder.UmaCobertura().Padrao() .ComInicioVigencia(_param.DataInicioVigencia.AddYears(-1)) .ComItemCertificadoApolice(_param.IdExterno) .ComItemProdutoId(_param.ItemProdutoId) .ComInicioVigencia(_param.DataInicioVigencia) .ComClasseRisco(_param.ClasseRiscoId) .Com(ContratacaoBuilder.UmaContratacao().Padrao() .ComTipoRenda(ObterTipoRenda(_param.TipoRendaId)) .ComTipoFormaContratacao(ObterTipoFormaContratacao(_param.TipoFormaContratacaoId)) ))).Build(); }
public void DeveAdicionarProdutoEmUmaVendaExistente() { var clienteExpected = ClienteBuilder.NewInstance().WithId(CLIENTE_ID_EXISTS).Build(); var produtoExpectedOne = ProdutoBuilder .NewInstance() .WithId(PRODUTO_ID_EXISTS_ONE) .WithPrecoVenda(10) .Build(); var produtoExpectedTwo = ProdutoBuilder .NewInstance() .WithId(PRODUTO_ID_EXISTS_TWO) .WithPrecoVenda(5) .Build(); var vendaExpected = new Venda(clienteExpected); vendaExpected.Id = VENDA_ID_EXISTS; vendaExpected.AddProduto(produtoExpectedOne, 1); vendaExpected.AddProduto(produtoExpectedTwo, 1); vendaRepositoryMock .Setup(r => r.Salvar(It.IsAny <Venda>())) .Callback <Venda>(v => { v.Id = VENDA_ID_EXISTS; }); var venda = vendaService.Iniciar(clienteExpected, produtoExpectedOne, 1); venda = vendaService.AdicionarProduto(venda, produtoExpectedTwo, 1); vendaExpected.ToExpectedObject().ShouldEqual(venda); }
public void Insert(ProdutoViewModel produto) { var prod = new ProdutoBuilder(produto.Nome, produto.PrecoCusto, produto.PrecoVenda, produto.Marca) .AddDefaultInsert() .Build(); new CommandInsertProduto(prod, _repository).Execute(); }
private static PedidoDeVenda GetPedido() { var cliente = new ClienteBuilder() .WithNome("Cepo") .WithCodigo(1) .Build(); var produto1 = new ProdutoBuilder() .WithCancelado(false) .WithNome("Abacate") .WithQuantidade(1.00m) .WithValorUnitarioBruto(50.00m) .WithCodigo(1) .Build(); var produto2 = new ProdutoBuilder() .WithCancelado(false) .WithNome("Abacaxi") .WithQuantidade(4.00m) .WithValorUnitarioBruto(60.00m) .WithCodigo(9) .Build(); var produto3 = new ProdutoBuilder() .WithCancelado(false) .WithNome("Carambola") .WithQuantidade(10.00m) .WithValorUnitarioBruto(70.00m) .WithCodigo(10) .Build(); var produto4 = new ProdutoBuilder() .WithCancelado(false) .WithNome("Bacon") .WithQuantidade(20.00m) .WithValorUnitarioBruto(99.00m) .WithCodigo(3) .Build(); var produto5 = new ProdutoBuilder() .WithCancelado(false) .WithNome("Pão de batata") .WithQuantidade(20.00m) .WithValorUnitarioBruto(99.00m) .WithCodigo(3) .Build(); var produtos = new List <Produto> { produto1, produto2, produto3, produto4, produto5 }; return(new PedidoDeVendaBuilder() .WithCliente(cliente) .WithItens(produtos) .WithCodigo(1) .Build()); }
public void Update(ProdutoViewModel produto) { var prod = new ProdutoBuilder(produto.Nome, produto.PrecoCusto, produto.PrecoVenda, produto.Marca) .WithId(produto.Id) .AddDefaultUpdate() .Build(); new CommandUpdateProduto(prod, _repository).Execute(); }
public void DeveAlterarNome() { var novoNomeEsperado = _faker.Name.Random.String(); var produto = ProdutoBuilder.Novo().Build(); produto.AlterarNome(novoNomeEsperado); Assert.Equal(novoNomeEsperado, produto.Nome); }
public void ObterBeneficiarioMaisNovo_quando_item_produto_contem_um_unico_beneficiario() { var _proposta = PropostaBuilder.UmaProposta() .Com(ProdutoBuilder.UmProduto() .Com(BeneficiarioBuilder.UmBeneficiario()) .ComCodigo(10)) .Build(); var coberturaContratada = CoberturaContratadaBuilder.Uma().Build(); }
public void NaoDeveIniciarNovaVendaQuandoProdutoNaoExiste() { var clienteExpected = ClienteBuilder.NewInstance().WithId(CLIENTE_ID_EXISTS).Build(); var produtoExpected = ProdutoBuilder .NewInstance() .Build(); var exception = Assert.Throws <DomainException>(() => vendaService.Iniciar(clienteExpected, produtoExpected, 1)); Assert.Equal($"Produto {produtoExpected.Descricao} não existe.", exception.Message); }
public ProdutoModel Edit(ProdutoModel model) { var produto = new ProdutoBuilder() .WithId(model.Id ?? Guid.Empty) .WithNome(model.Nome) .WithPrecoDeCusto(model.PrecoDeCusto) .WithPrecoDeVenda(model.PrecoDeVenda) .Build(); _produtoRepository.Update(produto); return(_mapper.Map <ProdutoModel>(produto)); }
public void NaoDeveIniciarNovaVendaQuandoQuantidadeInvalida() { var clienteExpected = ClienteBuilder.NewInstance().WithId(CLIENTE_ID_EXISTS).Build(); var produtoExpected = ProdutoBuilder .NewInstance() .WithId(PRODUTO_ID_EXISTS_ONE) .Build(); var exception = Assert.Throws <DomainException>(() => vendaService.Iniciar(clienteExpected, produtoExpected, 0)); Assert.Equal($"Quantidade inválida.", exception.Message); }
public void CriarNovoProdutoComErro(string nome, decimal precoDeCusto, decimal precoDeVenda) { var produto = new ProdutoBuilder() .WithId(Guid.NewGuid()) .WithNome(nome) .WithPrecoDeCusto(precoDeCusto) .WithPrecoDeVenda(precoDeVenda) .Build(); Assert.False(produto.IsValid); }
public void DeveIniciarNovaVenda() { var clienteExpected = ClienteBuilder.NewInstance().WithId(CLIENTE_ID_EXISTS).Build(); var produtoExpected = ProdutoBuilder.NewInstance().WithId(PRODUTO_ID_EXISTS_ONE).Build(); var vendaExpected = new Venda(clienteExpected); vendaExpected.AddProduto(produtoExpected, 1); var venda = vendaService.Iniciar(clienteExpected, produtoExpected, 1); vendaExpected.ToExpectedObject().ShouldEqual(venda); }
public async Task <ProdutoModel> EditAsync(ProdutoModel model, CancellationToken cancellationToken) { var produto = new ProdutoBuilder() .WithId(model.Id ?? Guid.Empty) .WithNome(model.Nome) .WithPrecoDeCusto(model.PrecoDeCusto) .WithPrecoDeVenda(model.PrecoDeVenda) .Build(); await _produtoRepository.UpdateAsync(produto, cancellationToken); return(_mapper.Map <ProdutoModel>(produto)); }
public ProdutoDomain CriarParaSalvar(ProdutoDto produtoDto) { var produto = new ProdutoBuilder() .WithId(Guid.NewGuid()) .WithNome(produtoDto.Nome) .WithFornecedor(produtoDto.Fornecedor) .WithFornecedorId(produtoDto.FornecedorId) .WithPreco(produtoDto.Preco) .WithQuantidade(produtoDto.Quantidade) .Build(); return(produto); }
public static List <Produto> GetProdutosParaTestes() { var produto1 = new ProdutoBuilder() .WithNome("Produto teste 1") .Build(); var produto2 = new ProdutoBuilder() .WithNome("Produto teste 2") .Build(); return(new List <Produto>() { produto1, produto2 }); }
public void CriarNovoProdutoSemErro(string nome, decimal precoDeCusto, decimal precoDeVenda) { var produto = new ProdutoBuilder() .WithId(Guid.NewGuid()) .WithNome(nome) .WithPrecoDeCusto(precoDeCusto) .WithPrecoDeVenda(precoDeVenda) .Build(); Assert.True(produto.IsValid); Assert.Equal(nome, produto.Nome); Assert.Equal(precoDeCusto, produto.PrecoDeCusto); Assert.Equal(precoDeVenda, produto.PrecoDeVenda); }
public Produto(ProdutoBuilder produto) { if (produto.Id > 0) { Id = produto.Id; } Nome = SetNome(produto.Nome); PrecoCusto = SetPrecoCusto(produto.PrecoCusto); PrecoVenda = SetPrecoVenda(produto.PrecoVenda); Marca = SetMarca(produto.Marca); DataInclusao = SetDataInclusao(produto.DataInclusao); DataAlteracao = SetDataAlteracao(produto.DataAlteracao); CodigoUsuario = SetCodigoUsuario(produto.CodigoUsuario); }
public void DeveIniciarNovaVendaAdicionandoProdutoComDescontoClienteOuro() { var clienteExpected = ClienteBuilder .NewInstance() .WithId(CLIENTE_ID_EXISTS) .WithTipo(ClienteTipo.Ouro) .Build(); var produtoExpected = ProdutoBuilder .NewInstance() .WithId(PRODUTO_ID_EXISTS_ONE) .WithPrecoVenda(10) .Build(); var venda = vendaService.Iniciar(clienteExpected, produtoExpected, 1); Assert.Equal(8, venda.Detalhes.FirstOrDefault().PrecoVendido); }
private void ObterProposta() { _proposta = PropostaBuilder.UmaProposta() .Padrao() .Com(DadosPagamentoBuilder.UmPagamento()) .Com(ProponenteBuider.UmProponente().Padrao()) .Com(ProdutoBuilder.UmProduto() .ComInscricao(IdentificadoresPadrao.InscricaoId) .Com(BeneficiarioBuilder.UmBeneficiario().Padrao()) .Com(CoberturaBuilder.UmaCobertura().Padrao() .Com(PrazosBuilder.Um().Padrao()) .Com(ContratacaoBuilder.UmaContratacao() .ComTipoFormaContratacao(TipoFormaContratacaoEnum.RendaMensal) .ComTipoRenda(TipoDeRendaEnum.NaoSeAplica)) ) ).Build(); }
public ProdutoModel Save(ProdutoModel model) { var produto = new ProdutoBuilder() .WithId(Guid.NewGuid()) .WithNome(model.Nome) .WithPrecoDeCusto(model.PrecoDeCusto) .WithPrecoDeVenda(model.PrecoDeVenda) .Build(); if (!produto.IsValid) { return(_mapper.Map <ProdutoModel>(produto)); } _produtoRepository.Insert(produto); return(_mapper.Map <ProdutoModel>(produto)); }
public async Task <ProdutoModel> SaveAsync(ProdutoModel model, CancellationToken cancellationToken) { var produto = new ProdutoBuilder() .WithId(Guid.NewGuid()) .WithNome(model.Nome) .WithPrecoDeCusto(model.PrecoDeCusto) .WithPrecoDeVenda(model.PrecoDeVenda) .Build(); if (!produto.IsValid) { return(_mapper.Map <ProdutoModel>(produto)); } await _produtoRepository.InsertAsync(produto, cancellationToken); return(_mapper.Map <ProdutoModel>(produto)); }
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(); }
public ProdutoDomain CriarParaAlterar(ProdutoDto produtoDto) { var _produto = Context.Produtos.FirstOrDefault(x => x.Id == produtoDto.Id); if (_produto == null) { throw new ArgumentNullException(nameof(_produto)); } var produto = new ProdutoBuilder() .WithId(_produto.Id) .WithFornecedor(_produto.Fornecedor) .WithFornecedorId(_produto.FornecedorId) .WithNome(_produto.Nome) .WithPreco(_produto.Preco) .WithQuantidade(_produto.Quantidade) .Build(); return(produto); }
public static List <Produto> GetProdutosParaTestes() { var produto1 = new ProdutoBuilder() .WithId(Guid.NewGuid()) .WithNome("Produto teste 1") .Build(); var produto2 = new ProdutoBuilder() .WithId(Guid.NewGuid()) .WithNome("Produto teste 2") .Build(); var categoria = new CategoriaDoProdutoBuilder() .WithId(Guid.NewGuid()) .WithNome("Categoria teste") .Build(); produto2.SetCategoriaDoProduto(categoria); return(new List <Produto>() { produto1, produto2 }); }
public void ValidarMatricula() { var produto = ProdutoBuilder.UmProduto().ComInscricao(IdentificadoresPadrao.InscricaoId).Build(); Assert.That(() => produto.Validar().Validate(), GeraErro($"Não foi informada a matricula da inscrição { produto.InscricaoCertificado }")); }
public void ValidarCodigoProduto() { var produto = ProdutoBuilder.UmProduto().ComInscricao(IdentificadoresPadrao.InscricaoId).Build(); Assert.That(() => produto.Validar().Validate(), GeraErro($"Não foi informado o produtoId para a inscricao { produto.InscricaoCertificado }")); }
public void ValidarInscricaoCertificado() { var produto = ProdutoBuilder.UmProduto().Build(); Assert.That(() => produto.Validar().Validate(), GeraErro("Não foi informado o numero de certificado / inscrição")); }
public void DeveCriarProdutoInvalido(string nomeInvalido) { Assert.Throws <ArgumentException>(() => ProdutoBuilder.Novo().ComNome(nomeInvalido) .Build()).ComMensagem("nome inválido"); }