Exemplo n.º 1
0
        public void CreateWithVeiculoWithValueGreaterThan3000ShouldReturnVendaWhenTipoOperacaoIsVenda()
        {
            // Arrange
            var vendaDto = new VendaDto
            {
                IdVeiculo     = 1,
                Valor         = 300000.00,
                NomeComprador = "Comprador"
            };

            var imposto = new Imposto
            {
                Id        = 1,
                Descricao = "Imposto teste",
                Nome      = "NomeImposto",
                Valor     = 1250.00
            };

            var veiculo = new Veiculo("IKG6861", "Verde", 100.00, true, true, "Hyundai", "HB20", TipoVeiculo.Carro, "Venda");

            var venda = new Venda(1, 400000.00, "Comprador");

            vendaRepository.Create(vendaDto).Returns(venda);
            impostoRepository.Get(Arg.Any <string>()).Returns(imposto);
            veiculoRepository.GetById(venda.IdVeiculo).Returns(veiculo);
            veiculoRepository.UpdateVeiculo(veiculo).Returns(veiculo);

            // Act
            var result = service.Create(vendaDto);

            // Assert
            result.Should().NotBeNull();
            result.Should().Equals(venda);
            vendaRepository.Received().Create(vendaDto);
        }
Exemplo n.º 2
0
        public Venda Create(VendaDto vendaDto)
        {
            var veiculo = veiculoRepository.GetById(vendaDto.IdVeiculo);

            if (veiculo.TipoOperacao.Equals("Venda") && veiculo.Disponivel)
            {
                var result  = repository.Create(vendaDto);
                var imposto = 0.0;
                if (result.Valor > 300000.00)
                {
                    imposto = impostoRepository.Get("ImpostoAltoValor").Valor;
                }
                else
                {
                    imposto = impostoRepository.Get("ImpostoBaixoValor").Valor;
                }

                result.AddValor(imposto);
                veiculo.ChangeDisponibilidade();
                veiculoRepository.UpdateVeiculo(veiculo);
                return(result);
            }
            else
            {
                throw new InvalidOperationException();
            }
        }
Exemplo n.º 3
0
        public async Task <Venda> Create(Venda venda)
        {
            venda.VendaId         = Guid.NewGuid();
            venda.StatusPagamento = false;
            venda.StatusPedido    = false;
            await venda.Validar <VendaValidator, Venda>();

            await _vendaRepository.Create(venda);

            return(venda);
        }
Exemplo n.º 4
0
        public IActionResult FinalizarCompra(Venda venda)
        {
            venda.Produto = _produtoRepository.Read(venda.Produto.Id);
            var id = new Guid(Request.Cookies["Id"]);

            venda.Cliente         = _clienteRepository.Read(id);
            venda.ValorTotalVenda = (decimal)venda.Produto.Valor;
            venda.DataVenda       = DateTime.Now;
            venda.FormaPagamento  = venda.FormaPagamento;
            _vendaRepository.Create(venda);
            return(View("~/Views/Cliente/Index.cshtml"));
        }