public void CustomerFacadeGetAllMyFlightsMethod()
        {
            ILoggedInAdministratorFacade adminFacade = (ILoggedInAdministratorFacade)TestConfig.fcs.Login(AirlineProjectConfig.ADMIN_USERNAME, AirlineProjectConfig.ADMIN_PASSWORD, out ILoginToken adminToken);

            adminFacade.CreateNewAirline((LoginToken <Administrator>)adminToken, TestData.airline1);
            adminFacade.CreateNewCustomer((LoginToken <Administrator>)adminToken, TestData.customer1);

            Flight flight1 = new Flight(0, 0, TestData.argentinaID, TestData.barbadosID, TestData.futureDate1, TestData.futureDate2, 200);
            Flight flight2 = new Flight(0, 0, TestData.chadID, TestData.denmarkID, TestData.futureDate1, TestData.futureDate3, 190);
            ILoggedInAirlineFacade airlineFacade1 = (ILoggedInAirlineFacade)TestConfig.fcs.Login(TestData.airline1.UserName, TestData.airline1.Password, out ILoginToken airlineToken1);

            airlineFacade1.CreateFlight((LoginToken <AirlineCompany>)airlineToken1, flight1);
            airlineFacade1.CreateFlight((LoginToken <AirlineCompany>)airlineToken1, flight2);

            IAnonymousUserFacade anonymousFacade = (IAnonymousUserFacade)TestConfig.fcs.Login("", "", out ILoginToken anonymousToken);

            ILoggedInCustomerFacade customerFacade1 = (ILoggedInCustomerFacade)TestConfig.fcs.Login(TestData.customer1.UserName, TestData.customer1.Password, out ILoginToken customerToken1);

            Assert.AreEqual(0, customerFacade1.GetAllMyFlights((LoginToken <Customer>)customerToken1).Count);

            Ticket ticket1 = customerFacade1.PurchaseTicket((LoginToken <Customer>)customerToken1, flight1);
            Ticket ticket2 = customerFacade1.PurchaseTicket((LoginToken <Customer>)customerToken1, flight2);

            IList <Flight> actualflights = customerFacade1.GetAllMyFlights((LoginToken <Customer>)customerToken1);

            Assert.AreEqual(2, customerFacade1.GetAllMyFlights((LoginToken <Customer>)customerToken1).Count);
            Assert.AreEqual(flight1, actualflights[0]);
            Assert.AreEqual(flight2, actualflights[1]);
        }
 public void TicketAlreadyExist()
 {
     AddToLogFile("run CustomerFacade TicketAlreadyExist Exception");
     InitDBUnitTest.InitDB();
     AdministratorFacade_CreateNewCustomer();
     Flight flight = AirlineCompanyFacadeFacade_CreateNewFlight1();
     ILoggedInCustomerFacade customerFacade = GetCustomerFacade(out LoginToken<Customer> tCustomer);
     customerFacade.PurchaseTicket(tCustomer, flight);
     customerFacade.PurchaseTicket(tCustomer, flight);
 }
Пример #3
0
        public void AirlineFacadeGetAllTicketsMethod()
        {
            ILoggedInAdministratorFacade adminFacade = (ILoggedInAdministratorFacade)TestConfig.fcs.Login(AirlineProjectConfig.ADMIN_USERNAME, AirlineProjectConfig.ADMIN_PASSWORD, out ILoginToken adminToken);

            adminFacade.CreateNewAirline((LoginToken <Administrator>)adminToken, TestData.airline1);
            adminFacade.CreateNewAirline((LoginToken <Administrator>)adminToken, TestData.airline2);
            adminFacade.CreateNewCustomer((LoginToken <Administrator>)adminToken, TestData.customer1);
            adminFacade.CreateNewCustomer((LoginToken <Administrator>)adminToken, TestData.customer2);
            adminFacade.CreateNewCustomer((LoginToken <Administrator>)adminToken, TestData.customer3);

            Flight flight1 = new Flight(0, 0, TestData.argentinaID, TestData.barbadosID, TestData.futureDate1, TestData.futureDate2, 200);
            Flight flight2 = new Flight(0, 0, TestData.chadID, TestData.denmarkID, TestData.futureDate1, TestData.futureDate3, 200);
            Flight flight3 = new Flight(0, 0, TestData.egyptID, TestData.franceID, TestData.futureDate2, TestData.futureDate3, 200);
            ILoggedInAirlineFacade airlineFacade1 = (ILoggedInAirlineFacade)TestConfig.fcs.Login(TestData.airline1.UserName, TestData.airline1.Password, out ILoginToken airlineToken1);
            ILoggedInAirlineFacade airlineFacade2 = (ILoggedInAirlineFacade)TestConfig.fcs.Login(TestData.airline2.UserName, TestData.airline2.Password, out ILoginToken airlineToken2);

            airlineFacade1.CreateFlight((LoginToken <AirlineCompany>)airlineToken1, flight1);
            airlineFacade1.CreateFlight((LoginToken <AirlineCompany>)airlineToken1, flight2);
            airlineFacade2.CreateFlight((LoginToken <AirlineCompany>)airlineToken2, flight3);

            ILoggedInCustomerFacade customerFacade1 = (ILoggedInCustomerFacade)TestConfig.fcs.Login(TestData.customer1.UserName, TestData.customer1.Password, out ILoginToken customerToken1);
            ILoggedInCustomerFacade customerFacade2 = (ILoggedInCustomerFacade)TestConfig.fcs.Login(TestData.customer2.UserName, TestData.customer2.Password, out ILoginToken customerToken2);
            ILoggedInCustomerFacade customerFacade3 = (ILoggedInCustomerFacade)TestConfig.fcs.Login(TestData.customer3.UserName, TestData.customer3.Password, out ILoginToken customerToken3);
            Ticket ticket1 = customerFacade1.PurchaseTicket((LoginToken <Customer>)customerToken1, flight1);
            Ticket ticket2 = customerFacade2.PurchaseTicket((LoginToken <Customer>)customerToken2, flight2);
            Ticket ticket3 = customerFacade3.PurchaseTicket((LoginToken <Customer>)customerToken3, flight3);

            IList <Ticket> tickets1 = airlineFacade1.GetAllTickets((LoginToken <AirlineCompany>)airlineToken1);

            Assert.AreEqual(ticket1, tickets1[0]);
            Assert.AreEqual(ticket2, tickets1[1]);
            Assert.AreEqual(2, tickets1.Count);
        }
        public async Task <ActionResult <TicketDTO> > PurchaseTicket([FromBody] AirlineFlightDTO flightDTO)
        {
            LoginToken <Customer> token = GetLoginToken();
            Flight flight = m_mapper.Map <Flight>(flightDTO);
            Ticket ticket = null;

            try
            {
                ticket = await Task.Run(() => { return(m_facade.PurchaseTicket(token, flight)); });
            }
            catch (CustomerAlreadyBoughtTicketException ex)
            {
                return(StatusCode(403, $"{{ error: \"{ex.Message}\" }}"));
            }
            catch (OutOfTicketsException ex)
            {
                return(StatusCode(406, $"{{ error: \"{ex.Message}\" }}"));
            }
            catch (WasntActivatedByCustomerException ex)
            {
                return(StatusCode(401, $"{{ error: \"{ex.Message}\" }}"));
            }
            TicketDTO ticketDTO = m_mapper.Map <TicketDTO>(ticket);

            return(Created($"api/Customer/PurchaseTicket/{ticketDTO.Id}", JsonConvert.SerializeObject(ticketDTO)));
        }
        public void CustomerFacadeCancelTicketMethod()
        {
            ILoggedInAdministratorFacade adminFacade = (ILoggedInAdministratorFacade)TestConfig.fcs.Login(AirlineProjectConfig.ADMIN_USERNAME, AirlineProjectConfig.ADMIN_PASSWORD, out ILoginToken adminToken);

            adminFacade.CreateNewAirline((LoginToken <Administrator>)adminToken, TestData.airline1);
            adminFacade.CreateNewCustomer((LoginToken <Administrator>)adminToken, TestData.customer1);

            Flight flight1 = new Flight(0, 0, TestData.argentinaID, TestData.barbadosID, TestData.futureDate1, TestData.futureDate2, 200);
            ILoggedInAirlineFacade airlineFacade1 = (ILoggedInAirlineFacade)TestConfig.fcs.Login(TestData.airline1.UserName, TestData.airline1.Password, out ILoginToken airlineToken1);

            airlineFacade1.CreateFlight((LoginToken <AirlineCompany>)airlineToken1, flight1);

            IAnonymousUserFacade anonymousFacade = (IAnonymousUserFacade)TestConfig.fcs.Login("", "", out ILoginToken anonymousToken);

            //Assert.AreEqual(200, anonymousFacade.GetFlight(flight1.ID).RemainingTickets);

            ILoggedInCustomerFacade customerFacade1 = (ILoggedInCustomerFacade)TestConfig.fcs.Login(TestData.customer1.UserName, TestData.customer1.Password, out ILoginToken customerToken1);
            Ticket ticket1 = customerFacade1.PurchaseTicket((LoginToken <Customer>)customerToken1, flight1);

            Assert.AreEqual(199, anonymousFacade.GetFlight(flight1.ID).RemainingTickets);

            customerFacade1.CancelTicket((LoginToken <Customer>)customerToken1, ticket1);

            Assert.AreEqual(200, anonymousFacade.GetFlight(flight1.ID).RemainingTickets);
            Assert.AreEqual(0, customerFacade1.GetAllMyFlights((LoginToken <Customer>)customerToken1).Count);
        }
        public void AirlineCompanyFacadeFacade_GetAllTickets_TicketsReceived()
        {
            Ticket         newTicket = null;
            IList <Ticket> tickets1  = null;
            IList <Ticket> tickets2  = null;

            InitDBUnitTest.InitDB();
            AdministratorFacade_CreateNewCustomer();
            Flight flight1 = AirlineCompanyFacadeFacade_CreateNewFlight1();
            ILoggedInAirlineFacade  airlineCompanyFacade = GetAirlineCompanyFacade(out LoginToken <AirlineCompany> tAirlineCompany);
            ILoggedInCustomerFacade customerFacade       = GetCustomerFacade(out LoginToken <Customer> tCustomer);
            Ticket ticket = customerFacade.PurchaseTicket(tCustomer, flight1);

            tickets1              = airlineCompanyFacade.GetAllTickets(tAirlineCompany);
            newTicket             = CreateNewTicket();
            newTicket.ID          = ticket.ID;
            newTicket.FLIGHT_ID   = ticket.FLIGHT_ID;
            newTicket.CUSTOMER_ID = ticket.CUSTOMER_ID;
            tickets2              = new List <Ticket>();
            tickets2.Add(newTicket);
            List <Ticket> t1 = (List <Ticket>)tickets1;
            List <Ticket> t2 = (List <Ticket>)tickets2;

            Assert.AreNotEqual(tickets1, null);
            Assert.AreNotEqual(tickets2, null);
            CollectionAssert.AreEqual(t1, t2);
            Assert.AreEqual(tickets1[0].ID, tickets2[0].ID);
            Assert.AreEqual(tickets1[0].FLIGHT_ID, tickets2[0].FLIGHT_ID);
            Assert.AreEqual(tickets1[0].CUSTOMER_ID, tickets2[0].CUSTOMER_ID);
        }
 public Ticket CustomerFacade_CreateNewTicket()
 {
     Flight flight = AirlineCompanyFacadeFacade_CreateNewFlight1();
     ILoggedInCustomerFacade customerFacade = GetCustomerFacade(out LoginToken<Customer> tCustomer);
     Ticket ticket = customerFacade.PurchaseTicket(tCustomer, flight);
     return ticket;
 }
        public void CustomerFacadePurchaseTicketMethodTicketAlreadyExistsException()
        {
            ILoggedInAdministratorFacade adminFacade = (ILoggedInAdministratorFacade)TestConfig.fcs.Login(AirlineProjectConfig.ADMIN_USERNAME, AirlineProjectConfig.ADMIN_PASSWORD, out ILoginToken adminToken);

            adminFacade.CreateNewAirline((LoginToken <Administrator>)adminToken, TestData.airline1);
            adminFacade.CreateNewCustomer((LoginToken <Administrator>)adminToken, TestData.customer1);

            ILoggedInAirlineFacade airlineFacade1 = (ILoggedInAirlineFacade)TestConfig.fcs.Login(TestData.airline1.UserName, TestData.airline1.Password, out ILoginToken airlineToken1);
            Flight flight1 = new Flight(0, 0, TestData.argentinaID, TestData.barbadosID, TestData.futureDate1, TestData.futureDate2, 200);

            airlineFacade1.CreateFlight((LoginToken <AirlineCompany>)airlineToken1, flight1);

            ILoggedInCustomerFacade customerFacade1 = (ILoggedInCustomerFacade)TestConfig.fcs.Login(TestData.customer1.UserName, TestData.customer1.Password, out ILoginToken customerToken1);

            customerFacade1.PurchaseTicket((LoginToken <Customer>)customerToken1, flight1);
            customerFacade1.PurchaseTicket((LoginToken <Customer>)customerToken1, flight1);
        }
 public void CustomerFacade_AddTicket_TicketAdded()
 {
     AddToLogFile("run CustomerFacade AddTicket");
     InitDBUnitTest.InitDB();
     Ticket ticket1 = null;
     Ticket ticket2 = null;
     Customer customer = AdministratorFacade_CreateNewCustomer();
     Flight flight = AirlineCompanyFacadeFacade_CreateNewFlight1();
     ILoggedInCustomerFacade customerFacade = GetCustomerFacade(out LoginToken<Customer> tCustomer);
     ticket1 = customerFacade.PurchaseTicket(tCustomer, flight);
     ticket2 = customerFacade.GetTicketByCustomerUserName(tCustomer, customer.USER_NAME);
     Assert.AreEqual(ticket1, ticket2);
 }
 public void NoTicketLeft()
 {
     AddToLogFile("run CustomerFacade NoTicketLeft Exception");
     InitDBUnitTest.InitDB();
     Flight newFlight1 = null;
     AdministratorFacade_CreateNewCustomer();
     Flight flight1 = AirlineCompanyFacadeFacade_CreateNewFlight1();
     ILoggedInCustomerFacade customerFacade = GetCustomerFacade(out LoginToken<Customer> tCustomer);
     ILoggedInAirlineFacade airlineCompanyFacade = GetAirlineCompanyFacade(out LoginToken<AirlineCompany> tAirlineCompany);
     newFlight1 = CreateNewFlight1();
     newFlight1.ID = flight1.ID;
     newFlight1.AIRLINECOMPANY_ID = flight1.AIRLINECOMPANY_ID;
     newFlight1.ORIGIN_COUNTRY_CODE = flight1.ORIGIN_COUNTRY_CODE;
     newFlight1.DESTINATION_COUNTRY_CODE = flight1.DESTINATION_COUNTRY_CODE;
     newFlight1.REMANING_TICKETS = 0;
     airlineCompanyFacade.UpdateRemainingTickets(tAirlineCompany, newFlight1);
     Flight flight2 = customerFacade.GetFlightByFlightId(tCustomer, newFlight1.ID);
     customerFacade.PurchaseTicket(tCustomer, flight2);
 }
        public IHttpActionResult PurchaseTicket([FromBody] Flight flight)
        {
            GetLoginToken();
            if (customerLoginToken == null)
            {
                return(Unauthorized());
            }
            FlyingCenter = FlyingCenterSystem.GetInstance();
            ILoggedInCustomerFacade customerFacade = FlyingCenter.GetFacede(customerLoginToken) as ILoggedInCustomerFacade;

            try
            {
                Ticket ticket = customerFacade.PurchaseTicket(customerLoginToken, flight);
                return(CreatedAtRoute("PurchaseTicket", new { id = ticket.ID }, ticket));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
        public ActionResult <TicketDetailsDTO> PurchaseTicket([FromBody] long flight_id)
        {
            LoginToken <Customer> customer_token = DesirializeToken();
            Ticket ticket = null;
            string uri    = null;

            Flight flight = _loggedInCustomerFacade.GetFlightById(flight_id);

            if (flight == null)
            {
                return(NotFound());
            }

            if (flight.RemainingTickets < 1 || flight.DepartureTime <= DateTime.Now.AddMinutes(15))
            {
                return(StatusCode(StatusCodes.Status410Gone));
            }

            try
            {
                ticket = _loggedInCustomerFacade.PurchaseTicket(customer_token, flight);

                uri = _linkGenerator.GetPathByAction(nameof(GetTicketById), "customerfacade", new { id = ticket.Id });
            }
            catch (RecordAlreadyExistsException)
            {
                return(Conflict());
            }
            catch (TicketPurchaseFailedException)
            {
                return(StatusCode(StatusCodes.Status410Gone));
            }

            TicketDetailsDTO ticketDetailsDTO = _mapper.Map <TicketDetailsDTO>(ticket);

            return(Created(uri, ticket));
        }
Пример #13
0
        public void CREATE_TICKET()
        {
            bool                  actual     = false;
            LoginService          ls         = new LoginService();
            LoginToken <Customer> ltCustomer = null;
            bool                  res        = ls.TryCustomerLogin("0021", "inna34", out ltCustomer);

            if (res == true)
            {
                FlyingCenterSystem      fs          = FlyingCenterSystem.Instance;
                ILoggedInCustomerFacade iCustomerFS = fs.GetFacade <ILoggedInCustomerFacade>();

                Ticket ticket = new Ticket(1, 1, 2);
                Flight flight = iCustomerFS.GetFlightByIdFlight(ltCustomer, 1);
                iCustomerFS.PurchaseTicket(ltCustomer, flight, ticket.id);
                IList <Flight> listFlights   = new List <Flight>();
                IList <Flight> originFlights = new List <Flight>();
                originFlights.Add(flight);
                listFlights = iCustomerFS.GetAllMyFlights(ltCustomer);
                actual      = originFlights.SequenceEqual(listFlights);

                Assert.IsTrue(actual);
            }
        }