public async Task Get_Flight_History_By_Original_Id() { await TestHelpers.Airline_Company_Login(_httpClient); CreateFlightDTO createFlightDTO = new CreateFlightDTO { OriginCountryId = 1, DestinationCountryId = 1, DepartureTime = DateTime.Now.AddHours(12), LandingTime = DateTime.Now.AddHours(16), 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 flightResult = JsonSerializer.Deserialize <Flight>(responseContent, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); var deleteResponse = await _httpClient.DeleteAsync($"api/flights/{flightResult.Id}"); var getResponse = await _httpClient.GetAsync($"api/history/flights/{flightResult.Id}"); Assert.AreEqual(HttpStatusCode.OK, getResponse.StatusCode); }
public async Task Purchase_And_Get_List_Of_Flights() { CreateFlightDTO createFlightDTO = new CreateFlightDTO { OriginCountryId = 1, DestinationCountryId = 1, DepartureTime = DateTime.Now.AddHours(2), LandingTime = DateTime.Now.AddHours(6), RemainingTickets = 1 }; await TestHelpers.Create_Flight_For_Tests(_httpClient, createFlightDTO); CreateCustomerDTO createCustomerDTO = await TestHelpers.Customer_Login(_httpClient); long flight_id = 1; await _httpClient.PostAsync("api/tickets", new StringContent(JsonSerializer.Serialize(flight_id), Encoding.UTF8, MediaTypeNames.Application.Json)); flight_id = 2; await _httpClient.PostAsync("api/tickets", new StringContent(JsonSerializer.Serialize(flight_id), Encoding.UTF8, MediaTypeNames.Application.Json)); var response = await _httpClient.GetAsync("api/customer/flights"); var responseContent = await response.Content.ReadAsStringAsync(); List <Flight> flightsResult = JsonSerializer.Deserialize <List <Flight> >(responseContent, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); Assert.AreEqual(flightsResult.Count, 2); }
public async Task Create_New_Flight_With_Dates_In_Past_Should_Return_Bad_Request() { await TestHelpers.Airline_Company_Login(_httpClient); CreateFlightDTO createFlightDTO = new CreateFlightDTO { OriginCountryId = 1, DestinationCountryId = 1, DepartureTime = DateTime.Now.AddHours(-12), LandingTime = DateTime.Now.AddHours(-6), RemainingTickets = 15 }; var response = await _httpClient.PostAsync("api/flights", new StringContent(JsonSerializer.Serialize(createFlightDTO), Encoding.UTF8, MediaTypeNames.Application.Json)); Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); var responseContent = await response.Content.ReadAsStringAsync(); var result = JsonSerializer.Deserialize <ValidationProblemDetails>(responseContent, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); Assert.AreEqual(result.Errors.Count, 2); }
public async Task Remove_Flight_That_Belongs_To_Another_Airline_Should_Return_Forbidden() { CreateAirlineCompanyDTO createAirlineCompanyDTO = new CreateAirlineCompanyDTO { Name = "Arkia", CountryId = 1, User = new CreateUserDTO { UserName = "******", Password = "******", Email = "*****@*****.**", } }; await TestHelpers.Airline_Company_Login(_httpClient, createAirlineCompanyDTO); CreateFlightDTO createFlightDTO = new CreateFlightDTO { OriginCountryId = 1, DestinationCountryId = 1, DepartureTime = DateTime.Now.AddHours(12), LandingTime = DateTime.Now.AddHours(16), RemainingTickets = 15 }; await _httpClient.PostAsync("api/flights", new StringContent(JsonSerializer.Serialize(createFlightDTO), Encoding.UTF8, MediaTypeNames.Application.Json)); await TestHelpers.Airline_Company_Login(_httpClient); var deleteResponse = await _httpClient.DeleteAsync($"api/flights/1"); Assert.AreEqual(HttpStatusCode.Forbidden, deleteResponse.StatusCode); }
public async Task Get_All_Tickets_By_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 }; await _httpClient.PostAsync("api/flights", new StringContent(JsonSerializer.Serialize(createFlightDTO), Encoding.UTF8, MediaTypeNames.Application.Json)); await TestHelpers.Customer_Login(_httpClient); long flight_id = 1; await _httpClient.PostAsync("api/tickets", new StringContent(JsonSerializer.Serialize(flight_id), Encoding.UTF8, MediaTypeNames.Application.Json)); CreateCustomerDTO createCustomerDTO = new CreateCustomerDTO { FirstName = "Customer2", LastName = "Custom2", Address = null, PhoneNumber = "052-5555512", CreditCardNumber = null, User = new CreateUserDTO { UserName = "******", Password = "******", Email = "*****@*****.**", } }; await TestHelpers.Customer_Login(_httpClient, createCustomerDTO); await _httpClient.PostAsync("api/tickets", new StringContent(JsonSerializer.Serialize(flight_id), Encoding.UTF8, MediaTypeNames.Application.Json)); await TestHelpers.Airline_Company_Login(_httpClient, create_airline : false); var response = await _httpClient.GetAsync($"api/airline-company/flights/{flight_id}/tickets"); var responseContent = await response.Content.ReadAsStringAsync(); List <TicketDetailsDTO> ticketsResult = JsonSerializer.Deserialize <List <TicketDetailsDTO> >(responseContent, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); Assert.AreEqual(ticketsResult.Count, 2); }
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); }
public async Task Get_List_Of_Flights() { await TestHelpers.Airline_Company_Login(_httpClient); CreateFlightDTO createFlightDTO = new CreateFlightDTO { OriginCountryId = 1, DestinationCountryId = 1, DepartureTime = DateTime.Now.AddHours(12), LandingTime = DateTime.Now.AddHours(16), RemainingTickets = 15 }; await _httpClient.PostAsync("api/flights", new StringContent(JsonSerializer.Serialize(createFlightDTO), Encoding.UTF8, MediaTypeNames.Application.Json)); await _httpClient.PostAsync("api/flights", new StringContent(JsonSerializer.Serialize(createFlightDTO), Encoding.UTF8, MediaTypeNames.Application.Json)); await _httpClient.PostAsync("api/flights", new StringContent(JsonSerializer.Serialize(createFlightDTO), Encoding.UTF8, MediaTypeNames.Application.Json)); var response = await _httpClient.GetAsync("api/flights"); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); var responseContent = await response.Content.ReadAsStringAsync(); List <FlightDetailsDTO> flightsListResult = JsonSerializer.Deserialize <List <FlightDetailsDTO> >(responseContent, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); Assert.AreEqual(flightsListResult.Count, 3); var response2 = await _httpClient.GetAsync($"api/airline-company/flights"); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); var responseContent2 = await response2.Content.ReadAsStringAsync(); List <FlightDetailsDTO> flightsByAirlineCompanyListResult = JsonSerializer.Deserialize <List <FlightDetailsDTO> >(responseContent2, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); Assert.AreEqual(flightsByAirlineCompanyListResult.Count, 3); }
public async Task Create_New_Flight_With_Country_Id_That_Not_Exists_Should_Return_Not_Found() { await TestHelpers.Airline_Company_Login(_httpClient); CreateFlightDTO createFlightDTO = new CreateFlightDTO { OriginCountryId = 2, DestinationCountryId = 1, DepartureTime = DateTime.Now.AddHours(12), LandingTime = DateTime.Now.AddHours(16), RemainingTickets = 15 }; var response = await _httpClient.PostAsync("api/flights", new StringContent(JsonSerializer.Serialize(createFlightDTO), Encoding.UTF8, MediaTypeNames.Application.Json)); Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode); }
internal static async Task Create_Flight_For_Tests(HttpClient httpClient, CreateFlightDTO createFlightDTO = null) { if (createFlightDTO == null) { createFlightDTO = new CreateFlightDTO { OriginCountryId = 1, DestinationCountryId = 1, DepartureTime = DateTime.Now.AddHours(2), LandingTime = DateTime.Now.AddHours(6), RemainingTickets = 15 }; } await httpClient.PostAsync("api/flights", new StringContent(JsonSerializer.Serialize(createFlightDTO), Encoding.UTF8, MediaTypeNames.Application.Json)); }
public async Task Get_All_Tickets_By_Flight_That_has_No_Tickets_Should_Return_No_Content() { 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 }; await _httpClient.PostAsync("api/flights", new StringContent(JsonSerializer.Serialize(createFlightDTO), Encoding.UTF8, MediaTypeNames.Application.Json)); var response = await _httpClient.GetAsync($"api/airline-company/flights/1/tickets"); Assert.AreEqual(HttpStatusCode.NoContent, response.StatusCode); }
public ActionResult <Flight> CreateFlight(CreateFlightDTO createFlightDTO) { LoginToken <AirlineCompany> airline_token = DesirializeToken(); Flight flight = _mapper.Map <Flight>(createFlightDTO); string uri = null; try { flight.Id = _loggedInAirlineFacade.CreateFlight(airline_token, flight); uri = _linkGenerator.GetPathByAction(nameof(AnonymousFacadeController.GetFlightById), "AnonymousFacade", new { id = flight.Id }); } catch (RelatedRecordNotExistsException) { return(NotFound()); } return(Created(uri, flight)); }
public async Task Purchase_Ticket_For_Flight_That_Left_Should_Return_Gone() { CreateFlightDTO createFlightDTO = new CreateFlightDTO { OriginCountryId = 1, DestinationCountryId = 1, DepartureTime = DateTime.Now.AddSeconds(5), LandingTime = DateTime.Now.AddHours(6), RemainingTickets = 100 }; await TestHelpers.Create_Flight_For_Tests(_httpClient, createFlightDTO); await TestHelpers.Customer_Login(_httpClient); long flight_id = 2; var response = await _httpClient.PostAsync("api/tickets", new StringContent(JsonSerializer.Serialize(flight_id), Encoding.UTF8, MediaTypeNames.Application.Json)); Assert.AreEqual(HttpStatusCode.Gone, response.StatusCode); }
public async Task Update_Flight_With_Country_Id_That_Not_Exists_Should_Return_Not_Found() { await TestHelpers.Airline_Company_Login(_httpClient); CreateFlightDTO createFlightDTO = new CreateFlightDTO { OriginCountryId = 1, DestinationCountryId = 1, DepartureTime = DateTime.Now.AddHours(12), LandingTime = DateTime.Now.AddHours(16), 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 flightResult = JsonSerializer.Deserialize <Flight>(responseContent, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); UpdateFlightDTO updateFlightDTO = new UpdateFlightDTO { Id = flightResult.Id, OriginCountryId = 2, DestinationCountryId = 1, DepartureTime = DateTime.Now.AddHours(10), LandingTime = DateTime.Now.AddHours(16), RemainingTickets = 10 }; var putResponse = await _httpClient.PutAsync($"api/flights/{flightResult.Id}", new StringContent(JsonSerializer.Serialize(updateFlightDTO), Encoding.UTF8, MediaTypeNames.Application.Json)); Assert.AreEqual(HttpStatusCode.NotFound, putResponse.StatusCode); }
public async Task SetUp() { _httpClient = _testHostFixture.Client; TestsDAOPGSQL.ClearDB(); await TestHelpers.Create_Country_For_Tests(_httpClient); await TestHelpers.Create_Country_For_Tests(_httpClient, new CreateCountryDTO { Name = "Usa" }); await TestHelpers.Create_Country_For_Tests(_httpClient, new CreateCountryDTO { Name = "Russia" }); await TestHelpers.Create_Country_For_Tests(_httpClient, new CreateCountryDTO { Name = "Italy" }); await TestHelpers.Airline_Company_Login(_httpClient); CreateFlightDTO createFlightDTO = new CreateFlightDTO { OriginCountryId = 1, DestinationCountryId = 2, DepartureTime = DateTime.Now.AddDays(1), LandingTime = DateTime.Now.AddDays(2), RemainingTickets = 15 }; await TestHelpers.Create_Flight_For_Tests(_httpClient, createFlightDTO); CreateFlightDTO createFlightDTO2 = new CreateFlightDTO { OriginCountryId = 1, DestinationCountryId = 2, DepartureTime = DateTime.Now.AddDays(2), LandingTime = DateTime.Now.AddDays(3), RemainingTickets = 15 }; await TestHelpers.Create_Flight_For_Tests(_httpClient, createFlightDTO2); CreateFlightDTO createFlightDTO3 = new CreateFlightDTO { OriginCountryId = 3, DestinationCountryId = 4, DepartureTime = DateTime.Now.AddDays(2), LandingTime = DateTime.Now.AddDays(3), RemainingTickets = 15 }; await TestHelpers.Create_Flight_For_Tests(_httpClient, createFlightDTO3); CreateFlightDTO createFlightDTO4 = new CreateFlightDTO { OriginCountryId = 3, DestinationCountryId = 4, DepartureTime = DateTime.Now.AddDays(4), LandingTime = DateTime.Now.AddDays(5), RemainingTickets = 15 }; await TestHelpers.Create_Flight_For_Tests(_httpClient, createFlightDTO4); CreateFlightDTO createFlightDTO5 = new CreateFlightDTO { OriginCountryId = 2, DestinationCountryId = 4, DepartureTime = DateTime.Now.AddDays(1), LandingTime = DateTime.Now.AddDays(2), RemainingTickets = 15 }; await TestHelpers.Create_Flight_For_Tests(_httpClient, createFlightDTO5); }