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); }
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(); } }
public void GetShouldReturnImposto() { // Arrange var nomeImposto = "NomeImposto"; var imposto = new List <Imposto> { new Imposto { Descricao = "Descricao imposto", Nome = "NomeImposto", Valor = 10000 } }; AddRange(imposto); // Act var result = repository.Get(nomeImposto); // Assert result.Should().Equals(imposto); result.Should().NotBeNull(); }