public void CreateWithValidVeiculoShouldReturnAluguel() { // Arrange var id = 0; var veiculo = new Veiculo("IKG6861", "Verde", 100.00, true, true, "Hyundai", "HB20", TipoVeiculo.Carro, "Aluguel"); var aluguelDto = new AluguelDto { IdVeiculo = id, ValorMensal = 100, Nome = "Comprador", DataEntrega = DateTime.Now, DataRetirada = DateTime.Now }; var aluguel = new Aluguel(id, 100, "Comprador", DateTime.Now, DateTime.Now); veiculoRepository.GetById(id).Returns(veiculo); aluguelRepository.CreateAluguel(aluguelDto).Returns(aluguel); // Act var result = service.Create(aluguelDto); // Assert result.Should().NotBeNull(); result.Should().Equals(aluguel); aluguelRepository.Received().CreateAluguel(aluguelDto); }
public Aluguel Create(AluguelDto aluguelDto) { var veiculo = veiculoRepository.GetById(aluguelDto.IdVeiculo); if (veiculo.TipoOperacao.Equals("Aluguel") && veiculo.Disponivel) { var result = repository.CreateAluguel(aluguelDto); veiculo.ChangeDisponibilidade(); veiculoRepository.UpdateVeiculo(veiculo); return(result); } else { throw new InvalidOperationException(); } }