public void Cancel_Ticket()
        {
            Execute_Test(() =>
            {
                Flight flight = customer_facade.GetFlightById(1);
                Ticket ticket = customer_facade.PurchaseTicket(customer_token, flight);
                Assert.AreEqual(ticket.Id, 2);

                flight = customer_facade.GetFlightById(1);
                int empty_seates_before_cancellation = flight.RemainingTickets;

                customer_facade.CancelTicket(customer_token, ticket);
                Ticket ticket_from_db = customer_facade.GetTicketById(customer_token, ticket.Id);
                Assert.AreEqual(ticket_from_db, null);

                flight = customer_facade.GetFlightById(1);
                int empty_seates_after_cancellation = flight.RemainingTickets;
                Assert.AreEqual(empty_seates_before_cancellation + 1, empty_seates_after_cancellation);

                TicketHistory ticketHistory = customer_facade.GetTicketHistoryByOriginalId(customer_token, ticket.Id);
                Assert.AreEqual(ticketHistory.Id, 1);
                Assert.AreEqual(ticketHistory.FlightId, ticket.Flight.Id);
                Assert.AreEqual(ticketHistory.CustomerId, ticket.Customer.Id);
                Assert.AreEqual(ticketHistory.CustomerFullName, ticket.Customer.FirstName + " " + ticket.Customer.LastName);
                Assert.AreEqual(ticketHistory.CustomerUserName, ticket.Customer.User.UserName);
                Assert.AreEqual(ticketHistory.TicketStatus, TicketStatus.Cancelled_By_Customer);
            });
        }
        public void Remove_Customer_With_Ticket()
        {
            Execute_Test(() =>
            {
                int country_id  = administrator_facade.CreateNewCountry(administrator_token, TestData.Get_Countries_Data()[0]);
                int country_id2 = administrator_facade.CreateNewCountry(administrator_token, TestData.Get_Countries_Data()[1]);
                int country_id3 = administrator_facade.CreateNewCountry(administrator_token, TestData.Get_Countries_Data()[2]);

                AirlineCompany demi_airlineCompany = TestData.Get_AirlineCompanies_Data()[0];
                demi_airlineCompany.CountryId      = country_id;
                long airline_company_id            = administrator_facade.CreateNewAirlineCompany(administrator_token, demi_airlineCompany);
                demi_airlineCompany.Id             = airline_company_id;

                system.TryLogin(demi_airlineCompany.User.UserName, demi_airlineCompany.User.Password, out ILoginToken token, out FacadeBase facade);
                LoggedInAirlineFacade airline_facade      = facade as LoggedInAirlineFacade;
                LoginToken <AirlineCompany> airline_token = token as LoginToken <AirlineCompany>;

                Flight demi_flight = TestData.Get_Flights_Data()[0];
                long flight_id     = airline_facade.CreateFlight(airline_token, demi_flight);
                demi_flight.Id     = flight_id;

                Customer demi_customer = TestData.Get_Customers_Data()[0];
                long customer_id       = administrator_facade.CreateNewCustomer(administrator_token, demi_customer);
                demi_customer.Id       = customer_id;

                system.TryLogin(demi_customer.User.UserName, demi_customer.User.Password, out ILoginToken token2, out FacadeBase facade2);
                LoggedInCustomerFacade customer_facade = facade2 as LoggedInCustomerFacade;
                LoginToken <Customer> customer_token   = token2 as LoginToken <Customer>;

                Ticket ticket = customer_facade.PurchaseTicket(customer_token, demi_flight);
                Assert.AreEqual(customer_facade.GetAllMyTickets(customer_token).Count, 1);


                administrator_facade.RemoveCustomer(administrator_token, demi_customer);

                Assert.AreEqual(administrator_facade.GetAllCustomers(administrator_token).Count, 0);
                Assert.AreEqual(customer_facade.GetAllMyTickets(customer_token).Count, 0);
                Assert.AreEqual(customer_facade.GetTicketHistoryByOriginalId(customer_token, ticket.Id).Id, 1);
            });
        }