public void AirlineFacadeTest() { FlightCenterConfig.DeleteDataBase(); CountryDAOMSSQL cydao = new CountryDAOMSSQL(); cydao.Add(new Country { COUNTRY_NAME = "Israel" }); long countryId1 = cydao.GetCountryId("Israel"); cydao.Add(new Country { COUNTRY_NAME = "Germany" }); long countryId2 = cydao.GetCountryId("Germany"); AirLineDAOMSSQL adao = new AirLineDAOMSSQL(); adao.Add(new AirlineCompany { AIRLINE_NAME = "IsrLines", USER_NAME = "ISR91", PASSWORD = "******", COUNTRY_CODE = countryId1 }); long airlineCompanyId1 = adao.GetAirlineCompanyId("ISR91"); adao.Add(new AirlineCompany { AIRLINE_NAME = "British Airlines", USER_NAME = "British555", PASSWORD = "******", COUNTRY_CODE = countryId2 }); long airlineCompanyId2 = adao.GetAirlineCompanyId("British555"); LoginToken <AirlineCompany> airlineLogin = new LoginToken <AirlineCompany>(); airlineLogin.User = new AirlineCompany(); airlineLogin.User.USER_NAME = "airline4life"; airlineLogin.User.PASSWORD = "******"; LoggedInAirlineFacade airlineFacade = new LoggedInAirlineFacade(); Flight flight = new Flight(airlineCompanyId1, airlineCompanyId2, countryId1, new DateTime(2019, 05, 10, 10, 30, 00), new DateTime(2019, 05, 10, 15, 05, 00), 15, "HajajaOnile", "555"); airlineFacade.CreateFlight(airlineLogin, flight); FlightDAOMSSQL fdao = new FlightDAOMSSQL(); long flightid = fdao.GetFlightId("555"); Assert.AreEqual(flight, airlineFacade.GetFlightById((int)flightid)); airlineFacade.CancelFlight(airlineLogin, flight); Assert.IsNotNull(airlineFacade.GetFlightById((int)flightid)); airlineFacade.ChangeMyPassword(airlineLogin, "Na123456", "Aa100200"); Assert.AreEqual("Aa100200", airlineLogin.User.PASSWORD); }
private void Init_Anonymous_Data() { _logger.Debug($"Start Init Anonymous Tests Data"); TestsDAOPGSQL.ClearDB(); string username = "******"; string password = "******"; system.TryLogin(username, password, out ILoginToken admin_token, out FacadeBase admin_facade); LoggedInAdministratorFacade loggedInAdministratorFacade = admin_facade as LoggedInAdministratorFacade; LoginToken <Administrator> adminLoginToken = admin_token as LoginToken <Administrator>; int country_id = loggedInAdministratorFacade.CreateNewCountry(adminLoginToken, TestData.Get_Countries_Data()[0]); loggedInAdministratorFacade.CreateNewCountry(adminLoginToken, TestData.Get_Countries_Data()[1]); loggedInAdministratorFacade.CreateNewCountry(adminLoginToken, TestData.Get_Countries_Data()[2]); loggedInAdministratorFacade.CreateNewCustomer(adminLoginToken, TestData.Get_Customers_Data()[0]); AirlineCompany airlineCompany = TestData.Get_AirlineCompanies_Data()[0]; airlineCompany.CountryId = country_id; loggedInAdministratorFacade.CreateNewAirlineCompany(adminLoginToken, airlineCompany); system.TryLogin(TestData.Get_AirlineCompanies_Data()[0].User.UserName, TestData.Get_AirlineCompanies_Data()[0].User.Password, out ILoginToken token, out FacadeBase facade); LoginToken <AirlineCompany> airline_token = token as LoginToken <AirlineCompany>; LoggedInAirlineFacade airline_facade = facade as LoggedInAirlineFacade; Flight flight = TestData.Get_Flights_Data_For_Anonymous_Tests()[0]; Flight flight2 = TestData.Get_Flights_Data_For_Anonymous_Tests()[1]; Flight flight3 = TestData.Get_Flights_Data_For_Anonymous_Tests()[2]; Flight flight4 = TestData.Get_Flights_Data_For_Anonymous_Tests()[3]; Flight flight5 = TestData.Get_Flights_Data_For_Anonymous_Tests()[4]; Flight flight6 = TestData.Get_Flights_Data_For_Anonymous_Tests()[5]; long flight_id = airline_facade.CreateFlight(airline_token, flight); long flight_id2 = airline_facade.CreateFlight(airline_token, flight2); long flight_id3 = airline_facade.CreateFlight(airline_token, flight3); long flight_id4 = airline_facade.CreateFlight(airline_token, flight4); long flight_id5 = airline_facade.CreateFlight(airline_token, flight5); long flight_id6 = airline_facade.CreateFlight(airline_token, flight6); flight.Id = flight_id; flight2.Id = flight_id2; flight3.Id = flight_id3; flight4.Id = flight_id4; flight5.Id = flight_id5; flight6.Id = flight_id6; _logger.Debug($"End Init Anonymous Tests Data"); }
public IHttpActionResult CancelFlight([FromUri] int flightID) { LoginToken <AirlineCompany> token = (LoginToken <AirlineCompany>)Request.Properties["User"]; LoggedInAirlineFacade facade = (LoggedInAirlineFacade)(FlyingCenterSystem.GetFlyingCenterSystem().GetFacade(token)); Flight flight = facade.GetFlightById(flightID); if (flight == null) { return(BadRequest()); } else if (flight.AirlineCompanyID != token.User.ID) { return(Unauthorized()); } facade.CancelFlight(token, flight); return(Ok()); }
public void TicketNotMatchWhenTryGetTicketThatNotMatchToCurrentCustomer() { AirlineCompany airline = CreateRandomCompany(); airline.AirlineNumber = adminFacade.CreateNewAirline(adminToken, airline); User user = new User(airline.UserName, "123", UserTypes.Airline, false); FlyingCenterSystem.GetUserAndFacade(user, out ILogin token, out FacadeBase facade); LoginToken <AirlineCompany> newToken = token as LoginToken <AirlineCompany>; LoggedInAirlineFacade newfacade = facade as LoggedInAirlineFacade; Flight flight = CreateNewFlight(); flight.AirlineCompany_Id = newToken.User.Id; flight.Id = newfacade.CreateFlight(newToken, flight); long newId = customerFacade.PurchaseTicket(customerToken, flight); Ticket ticket = airlineFacade.GetSoldTicketById(airlineToken, (int)newId); }
public void TicketNotMatchWhenTryGetTicketThatNotMatchToCurrentCustomer() { tc.PrepareDBForTests(); AirlineCompany airline = new AirlineCompany("AirlineForUpdate", "Airline " + tc.UserTest(), "123", (int)tc.adminFacade.GetCountryByName("Israel").Id); airline.Airline_Number = tc.adminFacade.CreateNewAirline(tc.adminToken, airline); FlyingCenterSystem.GetUserAndFacade(airline.User_Name, "123", out ILogin token, out FacadeBase facade); LoginToken <AirlineCompany> newToken = token as LoginToken <AirlineCompany>; LoggedInAirlineFacade newfacade = facade as LoggedInAirlineFacade; Flight flight = new Flight { AirlineCompany_Id = newToken.User.Id, Departure_Time = new DateTime(2020, 12, 10, 00, 00, 00), Landing_Time = new DateTime(2020, 12, 11), Origin_Country_Code = tc.adminFacade.GetCountryByName("Israel").Id, Destination_Country_Code = tc.adminFacade.GetCountryByName("Israel").Id, Remaining_Tickets = 100 }; flight.Id = newfacade.CreateFlight(newToken, flight); long newId = tc.customerFacade.PurchaseTicket(tc.customerToken, flight); Ticket ticket = tc.airlineFacade.GetSoldTicketById(tc.airlineToken, (int)newId); }
private void Init_Customer_Facade_Data() { _logger.Debug($"Start Init Customer Tests Data"); string username = "******"; string password = "******"; system.TryLogin(username, password, out ILoginToken admin_token, out FacadeBase admin_facade); LoggedInAdministratorFacade loggedInAdministratorFacade = admin_facade as LoggedInAdministratorFacade; LoginToken <Administrator> adminLoginToken = admin_token as LoginToken <Administrator>; int country_id = loggedInAdministratorFacade.CreateNewCountry(adminLoginToken, TestData.Get_Countries_Data()[0]); loggedInAdministratorFacade.CreateNewCountry(adminLoginToken, TestData.Get_Countries_Data()[1]); loggedInAdministratorFacade.CreateNewCountry(adminLoginToken, TestData.Get_Countries_Data()[2]); loggedInAdministratorFacade.CreateNewCustomer(adminLoginToken, TestData.Get_Customers_Data()[0]); loggedInAdministratorFacade.CreateNewCustomer(adminLoginToken, TestData.Get_Customers_Data()[1]); AirlineCompany airlineCompany = TestData.Get_AirlineCompanies_Data()[0]; airlineCompany.CountryId = country_id; loggedInAdministratorFacade.CreateNewAirlineCompany(adminLoginToken, airlineCompany); system.TryLogin(airlineCompany.User.UserName, airlineCompany.User.Password, out ILoginToken airline_token, out FacadeBase airline_facade); LoggedInAirlineFacade loggedInAirlineFacade = airline_facade as LoggedInAirlineFacade; LoginToken <AirlineCompany> airlineLoginToken = airline_token as LoginToken <AirlineCompany>; Flight flight = TestData.Get_Flights_Data()[3]; Flight flight2 = TestData.Get_Flights_Data()[4]; Flight flight3 = TestData.Get_Flights_Data()[5]; long flight_id = loggedInAirlineFacade.CreateFlight(airlineLoginToken, flight); long flight_id2 = loggedInAirlineFacade.CreateFlight(airlineLoginToken, flight2); long flight_id3 = loggedInAirlineFacade.CreateFlight(airlineLoginToken, flight3); flight.Id = flight_id; flight2.Id = flight_id2; flight3.Id = flight_id3; system.TryLogin(TestData.Get_Customers_Data()[1].User.UserName, TestData.Get_Customers_Data()[1].User.Password, out ILoginToken token, out FacadeBase facade); LoginToken <Customer> cust_token = token as LoginToken <Customer>; LoggedInCustomerFacade cust_facade = facade as LoggedInCustomerFacade; cust_facade.PurchaseTicket(cust_token, flight); Login(TestData.Get_Customers_Data()[0].User.UserName, TestData.Get_Customers_Data()[0].User.Password); _logger.Debug($"End Init Customer Tests Data"); }
public void WrongDetailsToUpdateUserException() { FlightCenterSystem.Instance.Login(out FacadeBase facadebase, out ILoginToken token, "dana111", "gdfds"); LoginToken <AirlineCompany> loginToken = (LoginToken <AirlineCompany>)token; LoggedInAirlineFacade facade = (LoggedInAirlineFacade)facadebase; User user = new User { Id = loginToken.User.User.Id, User_Name = loginToken.User.User.User_Name, Password = loginToken.User.User.Password, Email = "*****@*****.**", User_Role = loginToken.User.User.User_Role }; _airlineDAO.Get(1).User = user; facade.MofidyAirlineDetails(loginToken, _airlineDAO.Get(1)); }
public void AirlineFacade_GetAllTickets_TicketsFound() { LoggedInAirlineFacade facade = FlyingCenterSystem.GetInstance().Login(TestResource.AIRLINE_USERNAME, TestResource.AIRLINE_PASSWORD, out LoginTokenBase login) as LoggedInAirlineFacade; IList <Ticket> tickets = facade.GetAllTickets(login as LoginToken <AirlineCompany>); Assert.AreNotEqual(null, tickets); for (int i = 0; i < tickets.Count; i++) { Assert.AreEqual(TestResource.ticketsId[i], tickets[i].Id); Assert.AreEqual(TestResource.ticketFlightsId[i], tickets[i].FlightId); Assert.AreEqual(TestResource.ticketsCustomersId[i], tickets[i].CustomerId); } }
public void TestChangePassword() { ResetWhatIsNeeded(); LoginService ls = new LoginService(); LoginToken <AirlineCompany> loginToken = new LoginToken <AirlineCompany>(); ls.TryAirlineLogin("company", "company", out loginToken); LoggedInAirlineFacade loggedInAirlineFacade = new LoggedInAirlineFacade(); loggedInAirlineFacade.ChangeMyPassword(loginToken, loginToken.User.Password, "hey"); Assert.IsTrue(ls.TryAirlineLogin("company", "hey", out loginToken)); loggedInAirlineFacade.ChangeMyPassword(loginToken, loginToken.User.Password, "company"); Assert.IsTrue(ls.TryAirlineLogin("company", "company", out loginToken)); }
public void TestModifyAirlineDetails() { ResetWhatIsNeeded(); LoginService ls = new LoginService(); LoginToken <AirlineCompany> loginToken = new LoginToken <AirlineCompany>(); ls.TryAirlineLogin("wefly", "wefly", out loginToken); LoggedInAirlineFacade loggedInAirlineFacade = new LoggedInAirlineFacade(); AirlineCompany newAirlineCompany = new AirlineCompany(loginToken.User.ID, loginToken.User.AirlineName, loginToken.User.Username, "youfly", loginToken.User.CountryID); loggedInAirlineFacade.MofidyAirlineDetails(loginToken, newAirlineCompany); Assert.IsTrue(ls.TryAirlineLogin("wefly", "youfly", out loginToken)); newAirlineCompany = new AirlineCompany(loginToken.User.ID, loginToken.User.AirlineName, loginToken.User.Username, "wefly", loginToken.User.CountryID); loggedInAirlineFacade.MofidyAirlineDetails(loginToken, newAirlineCompany); }
public void UpdateUserDetails_Test() { FlightCenterSystem.Instance.Login(out FacadeBase facadebase, out ILoginToken token, "dana131", "gdfds"); LoginToken <AirlineCompany> loginToken = (LoginToken <AirlineCompany>)token; LoggedInAirlineFacade facade = (LoggedInAirlineFacade)facadebase; User user = new User { Id = loginToken.User.User.Id, User_Name = "dana111", Password = loginToken.User.User.Password, Email = loginToken.User.User.Email, User_Role = loginToken.User.User.User_Role }; _airlineDAO.Get(1).User = user; facade.MofidyAirlineDetails(loginToken, _airlineDAO.Get(1)); Assert.AreEqual(_userDAO.Get(4).User_Name, "dana111"); }
private void GenerateFlights(LoggedInAdministratorFacade facade, LoginToken <Administrator> loginToken, FlyingCenterSystem flyingCenterSystem) { Random r = new Random(); List <AirlineCompany> airlineCompanies = (List <AirlineCompany>)facade.GetAllAirlineCompanies(); List <Country> countries = (List <Country>)facade.GetAllCountries(loginToken); foreach (AirlineCompany airlineCompany in airlineCompanies) { //login as the airline to get access to the CreateFlight method LoginToken <AirlineCompany> AirlineCompanyLoginToken = flyingCenterSystem.AttemptLoginAirlineCompany(airlineCompany.Username, airlineCompany.Password); LoggedInAirlineFacade airlineFacade = (LoggedInAirlineFacade)FlyingCenterSystem.GetFlyingCenterSystem().GetFacade(AirlineCompanyLoginToken); for (int i = 0; i < TicketsPerCustomerAmount; i++) { //create departue date DateTime newFlightDeparture = DateTime.Now; newFlightDeparture = newFlightDeparture.AddDays(r.Next(0, 8)); newFlightDeparture = newFlightDeparture.AddHours(r.Next(0, 25)); newFlightDeparture = newFlightDeparture.AddMinutes(r.Next(0, 61)); newFlightDeparture = newFlightDeparture.AddSeconds(r.Next(0, 61)); //create landing date DateTime newFlightLanding = newFlightDeparture; newFlightLanding = newFlightLanding.AddHours(r.Next(0, 25)); newFlightLanding = newFlightLanding.AddMinutes(r.Next(0, 61)); newFlightLanding = newFlightLanding.AddSeconds(r.Next(0, 61)); //choose countries for the flight Country country1 = countries[r.Next(0, countries.Count)]; Country country2 = null; do { country2 = countries[r.Next(0, countries.Count)]; }while (ReferenceEquals(country2, null) || country1.Equals(country2)); //create the flight and add it to the DB int availableTickets = r.Next(30, 61); Flight toAdd = new Flight(-1, airlineCompany.ID, country1.ID, country2.ID, newFlightDeparture, newFlightLanding, availableTickets, availableTickets); airlineFacade.CreateFlight(AirlineCompanyLoginToken, toAdd); } } }
public void AirlineFacade_GetAllAirlineCompanies_CompaniesFound() { LoggedInAirlineFacade facade = FlyingCenterSystem.GetInstance().Login(TestResource.AIRLINE_USERNAME, TestResource.AIRLINE_PASSWORD, out LoginTokenBase login) as LoggedInAirlineFacade; IList <AirlineCompany> companies = new List <AirlineCompany>(); companies = facade.GetAllAirlineCompanies(); Assert.AreNotEqual(companies, null); for (int i = 0; i < companies.Count; i++) { Assert.AreEqual(TestResource.airlinesId[i], companies[i].Id); Assert.AreEqual(TestResource.airlineNames[i], companies[i].AirlineName); Assert.AreEqual(TestResource.airlineCountryCodes[i], companies[i].CountryCode); } }
public IHttpActionResult CreateFlight([FromBody] Flight flight) { LoginToken <AirlineCompany> airlineToken = (LoginToken <AirlineCompany>)Request.Properties["airlineToken"]; LoggedInAirlineFacade airlineFacade = (LoggedInAirlineFacade)Request.Properties["airlineFacade"]; if (flight == null) { return(Content(HttpStatusCode.NotAcceptable, "you didn't send a flight to post")); } try { airlineFacade.CreateFlight(airlineToken, flight); return(Ok($"flight {flight.ID} was created")); } catch (Exception e) { return(Content(HttpStatusCode.NotAcceptable, e.Message)); } }
public void CreateFlight_Test() { FlightCenterSystem.Instance.Login(out FacadeBase facadebase, out ILoginToken token, "dana432", "gdfds"); LoginToken <AirlineCompany> loginToken = (LoginToken <AirlineCompany>)token; LoggedInAirlineFacade facade = (LoggedInAirlineFacade)facadebase; Flight flight = new Flight { Airline_Company_Id = 1, Origin_Country_Id = 4, Destination_Country_Id = 3, Departure_Time = new DateTime(2021, 5, 14, 19, 30, 00), Landing_Time = new DateTime(2021, 5, 14, 22, 30, 00), Remaining_Tickets = 30 }; facade.CreateFlight(loginToken, flight); Flight check_flight = _flightDAO.Get(10); Assert.AreEqual(check_flight.Id, 10); }
public IHttpActionResult MofidyAirlineDetails(AirlineCompany airline, [FromUri] int id) { LoginToken <AirlineCompany> airlineToken = (LoginToken <AirlineCompany>)Request.Properties["airlineToken"]; LoggedInAirlineFacade airlineFacade = (LoggedInAirlineFacade)Request.Properties["airlineFacade"]; if (airline == null || id <= 0) { return(Content(HttpStatusCode.NotFound, $"airline details haven't been filled out correctly")); } try { airlineFacade.ModifyAirlineDetails(airlineToken, airline); return(Ok($"airline {airline.USER_NAME} details updated")); } catch (Exception) { return(Content(HttpStatusCode.NotFound, $"airline {airline.ID} wasn't found")); } }
public void GetAllMyFlights() { UserRepository testUr = new UserRepository("dad", "aes", RolesEnum.admin); Admin testAdmin = new Admin("dav,", "id", 3); FlyingCenterSystem.GetInstance().TryLogin(ur.UserName, ur.Password, out ILogin token, out FacadeBase facade); LoginToken <Admin> myToken = token as LoginToken <Admin>; LoggedInAdministratorFacade myFacade = facade as LoggedInAdministratorFacade; myFacade.CreateNewAdmin(myToken, testUr, testAdmin); Country country = new Country("Israel"); myFacade.CreateNewCountry(myToken, country); AirlineCompany airlineCompany = new AirlineCompany("ElALL", 1, country.ID); UserRepository airlineTestUr = new UserRepository("rad", "ass", RolesEnum.airline); myFacade.CreateNewAirline(myToken, airlineTestUr, airlineCompany, country); Flight flight = new Flight(DateTime.Now, DateTime.Now, 50, airlineCompany.ID, country.ID, country.ID); FlyingCenterSystem.GetInstance().TryLogin(airlineTestUr.UserName, airlineTestUr.Password, out ILogin tokenAir, out FacadeBase facadeAir); LoginToken <AirlineCompany> myTokenair = tokenAir as LoginToken <AirlineCompany>; LoggedInAirlineFacade myFacadeAir = facadeAir as LoggedInAirlineFacade; myFacadeAir.CreateFlight(myTokenair, flight); AnonymousUserFacade anonymousUserFacade = new AnonymousUserFacade(); Customer customer = new Customer("asdjkb", "fgh", "adthv", "0506794532", "123479520589243", 2); UserRepository customerUserRepository = new UserRepository("radp", "ass", RolesEnum.customer); anonymousUserFacade.CreateCustomerAndUserRepository(customerUserRepository, customer); FlyingCenterSystem.GetInstance().TryLogin(customerUserRepository.UserName, customerUserRepository.Password, out ILogin tokenCustomer, out FacadeBase facadeCustomer); LoginToken <Customer> myTokencustomer = tokenCustomer as LoginToken <Customer>; LoggedInCustomerFacade loggedInCustomerFacade = facadeCustomer as LoggedInCustomerFacade; loggedInCustomerFacade.PurchaseTicket(myTokencustomer, flight); List <Flight> flights = (List <Flight>)loggedInCustomerFacade.GetAllMyFlights(myTokencustomer); Assert.IsNotNull(flights); }
// 5. Read Random Flight From API Web. public void ReadFlightsFromAPI(int times) { int success = 0; IList <AirlineCompany> companies = new AnonymousUserFacade().GetAllAirlineCompanies(); IList <Country> countries = new AnonymousUserFacade().GetAllCountries(); MainWindow.m_Dispatcher.Invoke(DispatcherPriority.ApplicationIdle, new ThreadStart(new Action(() => ViewModel.Logger.Add("Start Create Flights...")))); User user; for (int i = 0; i < userNamesOfCompanies.Count; i++) { user = new User(adminFacade.GetAirlineByUserName(adminToken, userNamesOfCompanies[i]).User_Name, adminFacade.GetAirlineByUserName(adminToken, userNamesOfCompanies[i]).Password, UserType.Airline, true); FlyingCenterSystem.GetUserAndFacade(user, out ILogin token, out FacadeBase facade); LoginToken <AirlineCompany> airlineToken = token as LoginToken <AirlineCompany>; LoggedInAirlineFacade airlineFacade = facade as LoggedInAirlineFacade; for (int j = 0; j < times; j++) { HttpResponseMessage response = client.GetAsync("").Result; if (response.IsSuccessStatusCode) { APIUser flightAPI = response.Content.ReadAsAsync <APIUser>().Result; airlineFacade.CreateFlight(airlineToken, new Flight(airlineToken.User.Id, countries[r.Next(countries.Count)].Id, countries[r.Next(countries.Count)].Id, flightAPI.results[0].registered.date, flightAPI.results[0].registered.date + TimeSpan.FromHours(r.Next(1, 12)), r.Next(1000))); MainWindow.m_Dispatcher.Invoke(DispatcherPriority.ApplicationIdle, new ThreadStart(new Action(() => ViewModel.Logger[ViewModel.Logger.Count - 1] = $"- {success+1}/{times*userNamesOfCompanies.Count} Flights Was Generated."))); success++; } ViewModel.HowMuchCreated++; } } userNamesOfCompanies = new List <string>(); if (times > 0) { log.Info($"\n{success} Flights Were Created And {times - success} Failed.\n"); MainWindow.m_Dispatcher.Invoke(DispatcherPriority.ApplicationIdle, new ThreadStart(new Action(() => ViewModel.Logger.Add($"- Flights Generator Is Over. ({success} Were Created And {times - success} Failed).")))); } else { MainWindow.m_Dispatcher.Invoke(DispatcherPriority.ApplicationIdle, new ThreadStart(new Action(() => ViewModel.Logger[ViewModel.Logger.Count - 1] = $"- No Creation Request For Flights."))); } }
public IHttpActionResult UpdateFlight(Flight flight, [FromUri] int id) { LoginToken <AirlineCompany> airlineToken = (LoginToken <AirlineCompany>)Request.Properties["airlineToken"]; LoggedInAirlineFacade airlineFacade = (LoggedInAirlineFacade)Request.Properties["airlineFacade"]; if (flight == null || id <= 0) { return(Content(HttpStatusCode.NotAcceptable, "flight details haven't been filled out correctly")); } try { flight.ID = id; airlineFacade.UpdateFlight(airlineToken, flight); return(Ok($"flight {flight.ID} was created")); } catch (Exception) { return(Content(HttpStatusCode.NotFound, $"flight id {id} wasn't found")); } }
public async Task <ActionResult <Flight> > GetFlightById(int flight_id) { FlightsCenterSystem.GetInstance().login(GetLoginToken().Name, GetLoginToken().Password, out LoginToken <Object> l, out FacadeBase f); facade = f as LoggedInAirlineFacade; Flight result = null; try { result = await Task.Run(() => facade.GetFlightById(flight_id)); } catch (IllegalFlightParameter ex) { return(StatusCode(400, $"{{ error: \"{ex.Message}\" }}")); } if (result.Id == 0) { return(StatusCode(204, $"{{there is no flight with the id \"{result.Id}\"}}")); } return(Ok(result)); }
public async Task <ActionResult <Customer> > GetMyDetails() { AllAirlineDetails details = new AllAirlineDetails(); User myUser = new User(); AirlineCompany myAirline = new AirlineCompany(); FlightsCenterSystem.GetInstance().login(GetLoginToken().Name, GetLoginToken().Password, out LoginToken <Object> l, out FacadeBase f); facade = f as LoggedInAirlineFacade; token_airline = GetLoginToken(); User u = new UserDAOPGSQL().GetAll().FirstOrDefault(_ => _.Password == token_airline.Password && _.Username == token_airline.Name); token_airline.User = new AirlineDAOPGSQL().GetAll().FirstOrDefault(_ => _.UserId == u.Id); await Task.Run(() => myUser = new UserDAOPGSQL().Get(u.Id)); await Task.Run(() => myAirline = new AirlineDAOPGSQL().Get(token_airline.User.Id)); details = new AllAirlineDetails(myUser.Username, myUser.Password, myUser.Email, myAirline.Name, myAirline.CountryID, myAirline.UserId); return(StatusCode(200, details)); }
// getFacade is gineric function is returning all facade's interfaces public T GetFacade <T>() { T obj = default(T); Type facadeType = typeof(T); if (facadeType == typeof(ILoggedInCustomerFacade)) { if (_loggedInCustomerFacade is null) { _loggedInCustomerFacade = new LoggedInCustomerFacade(); } obj = (T)(object)_loggedInCustomerFacade; } else if (facadeType == typeof(ILoggedInAirLineFacade)) { if (_loggedInAirlineFacade is null) { _loggedInAirlineFacade = new LoggedInAirlineFacade(); } obj = (T)(object)_loggedInAirlineFacade; } else if (facadeType == typeof(ILoggedInAdministratorFacade)) { if (_loggedInAdministratorFacade is null) { _loggedInAdministratorFacade = new LoggedInAdministratorFacade(); } obj = (T)(object)_loggedInAdministratorFacade; } else if (facadeType == typeof(IAnonymousUserFacade)) { if (_anonymousUserFacade is null) { _anonymousUserFacade = new AnonymousUserFacade(); } obj = (T)(object)_anonymousUserFacade; } return(obj); }
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); }); }
public void UpdateFlight_FlightFound_MakesRequestedChanges() { LoggedInAirlineFacade airlineFacade = GetAirlineFacade(LoggedInAirlineFacadeTest_Constants.UpdateFlight_FlightFound_MakesRequestedChanges_LOGINTOKEN_USERNAME, LoggedInAirlineFacadeTest_Constants.UpdateFlight_FlightFound_MakesRequestedChanges_LOGINTOKEN_PASSWORD); Flight updatedFlight = LoggedInAirlineFacadeTest_Constants.UpdateFlight_FlightFound_MakesRequestedChanges_UPDATED_FLIGHT_DETAILS; int flightId = LoggedInAirlineFacadeTest_Constants.UpdateFlight_FlightFound_MakesRequestedChanges_FLIGHT_ID; bool flag = false; airlineFacade.UpdateFlight(airlineFacade.LoginToken, flightId, updatedFlight); List <Flight> flights = (List <Flight>)airlineFacade.GetAllFlightsByAirline(airlineFacade.LoginToken); foreach (Flight listFlight in flights) { if (listFlight.DepartureTime == updatedFlight.DepartureTime && listFlight.LandingTime == updatedFlight.LandingTime && listFlight.TotalTickets == updatedFlight.TotalTickets) { flag = true; } } Assert.IsTrue(flag); }
private void CreateFlight_NewFlight_FlagRaisedIfListContainsCreatedFlight() { LoggedInAirlineFacade airlineFacade = GetAirlineFacade(LoggedInAirlineFacadeTest_Constants.CreateFlight_NewFlight_FlagDropsIfListContainsCreatedFlight_LOGINTOKEN_USERNAME, LoggedInAirlineFacadeTest_Constants.CreateFlight_NewFlight_FlagDropsIfListContainsCreatedFlight_LOGINTOKEN_PASSWORD); Flight flight = LoggedInAirlineFacadeTest_Constants.CreateFlight_NewFlight_FlagDropsIfListContainsCreatedFlight_NEW_FLIGHT; bool flag = false; airlineFacade.CreateFlight(airlineFacade.LoginToken, flight); List <Flight> flights = (List <Flight>)airlineFacade.GetAllFlightsByAirline(airlineFacade.LoginToken); foreach (Flight listFlight in flights) { if (listFlight.AirlineCompanyId == flight.AirlineCompanyId && listFlight.DepartureTime == flight.DepartureTime && listFlight.DestinationCountryId == flight.DestinationCountryId && listFlight.LandingTime == flight.LandingTime && listFlight.OriginCountryId == flight.OriginCountryId) { flag = true; } } Assert.IsTrue(flag); }
public bool TryLogin(string userName, string password, out LoginToken <IUser> token, out FacadeBase facadeBase) { Users user = new Users(); token = null; facadeBase = null; if (userName is null) { throw new ArgumentNullException($"username cannot be: {userName}"); } if (password is null) { throw new ArgumentNullException($"password cannot be: {password}"); } //in case it's admin "level 4" if (userName == "admin" && password == "9999") { if (_adminDAO.GetUserByUsername(userName).Equals(_userDAO.GetUserByUsername(userName))) { if (user.Password == password) { token = new LoginToken <Administrators>(); facadeBase = new LoggedInAdministratorFacade(); return(true); } } } else { if (UserAuthentication.IsUserAuthorized(userName, password)) { if (user.UserRole == 1) { Administrators admin = _adminDAO.Get(user.ID); token = new LoginToken <Administrators>() { User = admin }; facadeBase = new LoggedInAdministratorFacade(); return(true); } else if (user.UserRole == 2) { Administrators admin = _adminDAO.Get(user.ID); token = new LoginToken <Administrators>() { User = admin }; facadeBase = new LoggedInAdministratorFacade(); return(true); } else if (user.UserRole == 3) { Administrators admin = _adminDAO.Get(user.ID); token = new LoginToken <Administrators>() { User = admin }; facadeBase = new LoggedInAdministratorFacade(); return(true); } else if (user.ID.Equals(_customerDAO.Get(user.ID))) { Customer customer = _customerDAO.Get(user.ID); token = new LoginToken <Customer>() { User = customer }; facadeBase = new LoggedInCustomerFacade(); return(true); } else { AirlineCompany airline = _airlineDAO.Get(user.ID); token = new LoginToken <AirlineCompany>() { User = airline }; facadeBase = new LoggedInAirlineFacade(); return(true); } } } my_logger.Info($"Login Faild\n: username: {userName} password: {password}, Not excited!"); return(false); }
static AirlineFacadeController() { FlightCenterSystem fcs = FlightCenterSystem.GetInstance(); facade = fcs.GetFacade(new LoginToken <AirlineCompany>()) as LoggedInAirlineFacade; }
public void TestCustomerFacade() { ResetWhatIsNeeded(); FlyingCenterSystem flyingCenterSystem = FlyingCenterSystem.GetFlyingCenterSystem(); //sign in as a airline company LoginToken <AirlineCompany> companyLoginToken = flyingCenterSystem.AttemptLoginAirlineCompany("company", "company"); LoggedInAirlineFacade loggedInAirlineFacade = (LoggedInAirlineFacade)flyingCenterSystem.GetFacade(companyLoginToken); //create 4 flights DateTime now = DateTime.Now; loggedInAirlineFacade.CreateFlight(companyLoginToken, new Flight(-1, companyLoginToken.User.ID, 1, 3, now.AddHours(1), now.AddHours(2), 10, 10)); loggedInAirlineFacade.CreateFlight(companyLoginToken, new Flight(-1, companyLoginToken.User.ID, 1, 3, now.AddHours(2), now.AddHours(3), 10, 10)); loggedInAirlineFacade.CreateFlight(companyLoginToken, new Flight(-1, companyLoginToken.User.ID, 1, 3, now.AddHours(3), now.AddHours(4), 10, 10)); loggedInAirlineFacade.CreateFlight(companyLoginToken, new Flight(-1, companyLoginToken.User.ID, 1, 3, now.AddHours(4), now.AddHours(5), 10, 10)); IList <Flight> flights = loggedInAirlineFacade.GetFlightsByDestinationCountry(3); //login as the customer LoginToken <Customer> customer = flyingCenterSystem.AttemptLoginCustomer("customer", "customer"); LoggedInCustomerFacade loggedInCustomerFacade = (LoggedInCustomerFacade)flyingCenterSystem.GetFacade(customer); //buy a ticket for 4 flights loggedInCustomerFacade.PurchaseTicket(customer, flights[0]); loggedInCustomerFacade.PurchaseTicket(customer, flights[1]); loggedInCustomerFacade.PurchaseTicket(customer, flights[2]); loggedInCustomerFacade.PurchaseTicket(customer, flights[3]); TicketDAOMSSQL _ticketDAO = new TicketDAOMSSQL(); IList <Ticket> tickets = _ticketDAO.GetAll(); Assert.IsTrue(LookForTicket(tickets, customer.User.ID, flights[0].ID)); Assert.IsTrue(LookForTicket(tickets, customer.User.ID, flights[1].ID)); Assert.IsTrue(LookForTicket(tickets, customer.User.ID, flights[2].ID)); Assert.IsTrue(LookForTicket(tickets, customer.User.ID, flights[3].ID)); Assert.AreEqual(4, loggedInCustomerFacade.GetAllMyFlights(customer).Count); loggedInCustomerFacade.CancelTicket(customer, tickets[0]); loggedInCustomerFacade.CancelTicket(customer, tickets[1]); loggedInCustomerFacade.CancelTicket(customer, tickets[2]); loggedInCustomerFacade.CancelTicket(customer, tickets[3]); tickets = _ticketDAO.GetAll(); Assert.IsTrue(tickets.Count == 0); flights = loggedInAirlineFacade.GetFlightsByDestinationCountry(3); Assert.IsTrue(flights[0].RemainingTickets == 10); Assert.IsTrue(flights[1].RemainingTickets == 10); Assert.IsTrue(flights[2].RemainingTickets == 10); Assert.IsTrue(flights[3].RemainingTickets == 10); }
public void TestGetAllTicketsOfAirlineAndCancelFlight() { ResetWhatIsNeeded(); FlyingCenterSystem flyingCenterSystem = FlyingCenterSystem.GetFlyingCenterSystem(); //sign in as a airline company LoginToken <AirlineCompany> companyLoginToken = flyingCenterSystem.AttemptLoginAirlineCompany("company", "company"); LoggedInAirlineFacade loggedInAirlineFacade = (LoggedInAirlineFacade)flyingCenterSystem.GetFacade(companyLoginToken); //sign in as admin and add 2 customers LoginToken <Administrator> administratorLoginToken = flyingCenterSystem.AttemptLoginAdministrator("admin", "admin"); LoggedInAdministratorFacade loggedInAdministratorFacade = (LoggedInAdministratorFacade)flyingCenterSystem.GetFacade(administratorLoginToken); loggedInAdministratorFacade.CreateNewCustomer(administratorLoginToken, new Customer(-1, "john", "bravo", "john", "john", "places", "number", "anotherNumber")); loggedInAdministratorFacade.CreateNewCustomer(administratorLoginToken, new Customer(-1, "david", "david", "david", "david", "somewhere", "longnumber", "longnumber")); //create 4 flights DateTime now = DateTime.Now; loggedInAirlineFacade.CreateFlight(companyLoginToken, new Flight(-1, companyLoginToken.User.ID, 1, 2, now.AddHours(1), now.AddHours(2), 10, 10)); loggedInAirlineFacade.CreateFlight(companyLoginToken, new Flight(-1, companyLoginToken.User.ID, 1, 2, now.AddHours(2), now.AddHours(3), 10, 10)); loggedInAirlineFacade.CreateFlight(companyLoginToken, new Flight(-1, companyLoginToken.User.ID, 1, 2, now.AddHours(3), now.AddHours(4), 10, 10)); loggedInAirlineFacade.CreateFlight(companyLoginToken, new Flight(-1, companyLoginToken.User.ID, 1, 2, now.AddHours(4), now.AddHours(5), 10, 10)); IList <Flight> flights = loggedInAirlineFacade.GetFlightsByDestinationCountry(2); //login as 2 customers LoginToken <Customer> customer1 = flyingCenterSystem.AttemptLoginCustomer("john", "john"); LoginToken <Customer> customer2 = flyingCenterSystem.AttemptLoginCustomer("david", "david"); LoggedInCustomerFacade loggedInCustomerFacade = (LoggedInCustomerFacade)flyingCenterSystem.GetFacade(customer1); //purchase tickets loggedInCustomerFacade.PurchaseTicket(customer1, flights[0]); loggedInCustomerFacade.PurchaseTicket(customer1, flights[1]); loggedInCustomerFacade.PurchaseTicket(customer1, flights[2]); loggedInCustomerFacade.PurchaseTicket(customer1, flights[3]); loggedInCustomerFacade.PurchaseTicket(customer2, flights[0]); loggedInCustomerFacade.PurchaseTicket(customer2, flights[1]); //check to see if the flights data has been updated Flight flight0 = loggedInCustomerFacade.GetFlightById(flights[0].ID); Flight flight1 = loggedInCustomerFacade.GetFlightById(flights[1].ID); Flight flight2 = loggedInCustomerFacade.GetFlightById(flights[2].ID); Flight flight3 = loggedInCustomerFacade.GetFlightById(flights[3].ID); Assert.AreEqual(8, flight0.RemainingTickets); Assert.AreEqual(8, flight1.RemainingTickets); Assert.AreEqual(9, flight2.RemainingTickets); Assert.AreEqual(9, flight3.RemainingTickets); //check to see if tickets table has been updated IList <Ticket> tickets = loggedInAirlineFacade.GetAllTickets(companyLoginToken); Assert.IsTrue(LookForTicket(tickets, customer1.User.ID, flight0.ID)); Assert.IsTrue(LookForTicket(tickets, customer1.User.ID, flight1.ID)); Assert.IsTrue(LookForTicket(tickets, customer1.User.ID, flight2.ID)); Assert.IsTrue(LookForTicket(tickets, customer1.User.ID, flight3.ID)); Assert.IsTrue(LookForTicket(tickets, customer2.User.ID, flight0.ID)); Assert.IsTrue(LookForTicket(tickets, customer2.User.ID, flight1.ID)); //remove the flights loggedInAirlineFacade.CancelFlight(companyLoginToken, flight0); loggedInAirlineFacade.CancelFlight(companyLoginToken, flight1); loggedInAirlineFacade.CancelFlight(companyLoginToken, flight2); loggedInAirlineFacade.CancelFlight(companyLoginToken, flight3); tickets = loggedInAirlineFacade.GetAllTickets(companyLoginToken); Assert.IsTrue(tickets.Count == 0); flights = loggedInAirlineFacade.GetAllFlights(companyLoginToken); Assert.IsTrue(flights.Count == 0); }
public bool TryLogin(string userName, string password, out ILogin token, out FacadeBase facade) { token = null; facade = new AnonymousUserFacade(); // Default Admin. if (userName.ToUpper() == FlyingCenterConfig.ADMIN_NAME.ToUpper()) { if (password.ToUpper() == FlyingCenterConfig.ADMIN_PASSWORD.ToUpper()) { token = new LoginToken <Administrator> { User = new Administrator ( 0, //Admin Number 0, //Id FlyingCenterConfig.ADMIN_NAME, FlyingCenterConfig.ADMIN_PASSWORD ) }; facade = new LoggedInAdministratorFacade(); return(true); } else { throw new WrongPasswordException("Sorry, But Your Password Isn't Match To Your User Name."); } } // DAO Users. User user = _userDAO.GetUserByUserName(userName); if (user != null) { if (password.ToUpper() == user.Password.ToUpper()) { switch (user.MyType) { case UserType.Administrator: { Administrator admin = _administratorDAO.GetById(user.Id); token = new LoginToken <Administrator> { User = new Administrator ( admin.Admin_Number, user.Id, user.UserName, user.Password ) }; facade = new LoggedInAdministratorFacade(); break; } case UserType.Airline: { AirlineCompany airline = _airlineDAO.GetById(user.Id); token = new LoginToken <AirlineCompany> { User = new AirlineCompany ( airline.Airline_Number, user.Id, user.UserName, user.Password, airline.Airline_Name, airline.Country_Code ) }; facade = new LoggedInAirlineFacade(); break; } case UserType.Customer: { Customer customer = _customerDAO.GetById(user.Id); token = new LoginToken <Customer> { User = new Customer ( customer.Customer_Number, user.Id, user.UserName, user.Password, customer.First_Name, customer.Last_Name, customer.Address, customer.Phone_No, customer.Credit_Card_Number ) }; facade = new LoggedInCustomerFacade(); break; } default: { break; } } return(true); } else { throw new WrongPasswordException("Sorry, But Your Password Is Not Match To Your User Name."); } } return(false); }