Пример #1
0
        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);
        }