public async Task <ActionResult> Post([FromBody] RentalRequestModel rentalRequest) { var rentalDto = _mapper.Map <RentalDto>(rentalRequest); var addedRentalDto = await _service.AddNewRental(rentalDto); var responseModel = _mapper.Map <RentalResponseModel>(addedRentalDto); return(CreatedAtAction(nameof(GetById), new { id = responseModel.Id }, responseModel)); }
public async Task WhenTheClientCreatesARentalFromToWhitVehicle(DateTime startDate, DateTime endDate, long vehicleId) { var rentalRequest = new RentalRequestModel() { ClientId = _registeredClient.Id, VehicleId = vehicleId, StartDate = startDate, EndDate = endDate }; var response = await _client.PostAsJsonAsync("api/rentals", rentalRequest); response.StatusCode.Should().Be(HttpStatusCode.Created); var rentalCreated = JsonConvert.DeserializeObject <RentalResponseModel>(await response.Content.ReadAsStringAsync()); rentalCreated.Id.Should().Be(1); rentalCreated.ClientId.Should().Be(_registeredClient.Id); rentalCreated.VehicleId.Should().Be(vehicleId); rentalCreated.StartDate.Should().Be(startDate); rentalCreated.EndDate.Should().Be(endDate); }
public async Task Post_WhenCreateARental_ShouldReturnsTheRentalCreated() { //Arrenge _serviceMock.Setup(s => s.AddNewRental(It.IsAny <RentalDto>())) .ReturnsAsync(new RentalDto { Id = 1, ClientId = 1, StartDate = new DateTime(2021, 04, 1), EndDate = new DateTime(2021, 04, 10) }); var newRentalRequest = new RentalRequestModel { ClientId = 1, StartDate = new DateTime(2021, 04, 1), EndDate = new DateTime(2021, 04, 10) }; //Act var result = await _sut.Post(newRentalRequest); //Assert result.Should().BeOfType(typeof(CreatedAtActionResult)); var value = result.As <ObjectResult>().Value.As <RentalResponseModel>(); value.Id.Should().Be(1); value.ClientId.Should().Be(1); value.StartDate.Should().Be(new DateTime(2021, 04, 1)); value.EndDate.Should().Be(new DateTime(2021, 04, 10)); _serviceMock.Verify(s => s.AddNewRental(It.Is <RentalDto>(r => r.ClientId == 1 && r.StartDate == new DateTime(2021, 04, 1) && r.EndDate == new DateTime(2021, 04, 10) )), Times.Once); }