public ActionResult <FlightDetailsDTO> GetFlightById(long id) { Flight flight = _anonymousUserFacade.GetFlightById(id); if (flight == null) { return(NotFound()); } FlightDetailsDTO flightDetailsDTO = _mapper.Map <FlightDetailsDTO>(flight); return(Ok(flightDetailsDTO)); }
public async Task Create_And_Get_New_Flight() { await TestHelpers.Airline_Company_Login(_httpClient); CreateFlightDTO createFlightDTO = new CreateFlightDTO { OriginCountryId = 1, DestinationCountryId = 1, DepartureTime = DateTime.Now.AddHours(2), LandingTime = DateTime.Now.AddHours(6), RemainingTickets = 15 }; var response = await _httpClient.PostAsync("api/flights", new StringContent(JsonSerializer.Serialize(createFlightDTO), Encoding.UTF8, MediaTypeNames.Application.Json)); var responseContent = await response.Content.ReadAsStringAsync(); Flight flightPostResult = JsonSerializer.Deserialize <Flight>(responseContent, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); var linkGeneratorService = _serviceProvider.GetRequiredService <LinkGenerator>(); string createdPath = linkGeneratorService.GetPathByAction(nameof(AnonymousFacadeController.GetFlightById), "AnonymousFacade", new { id = flightPostResult.Id }); Assert.AreEqual(response.Headers.Location.OriginalString, createdPath); Assert.AreEqual(flightPostResult.Id, 1); var mapperService = _serviceProvider.GetRequiredService <IMapper>(); Flight mappedFlightInput = mapperService.Map <Flight>(createFlightDTO); mappedFlightInput.Id = flightPostResult.Id; mappedFlightInput.AirlineCompany = flightPostResult.AirlineCompany; TestHelpers.CompareProps(mappedFlightInput, flightPostResult); var response2 = await _httpClient.GetAsync($"api/flights/{flightPostResult.Id}"); Assert.AreEqual(HttpStatusCode.OK, response2.StatusCode); var responseContent2 = await response2.Content.ReadAsStringAsync(); FlightDetailsDTO flightGetResult = JsonSerializer.Deserialize <FlightDetailsDTO>(responseContent2, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); TestHelpers.CompareProps(flightGetResult, mapperService.Map <FlightDetailsDTO>(flightPostResult), true); }