public void ShouldBookFlight_ForDestination_Benidorm()
        {
            HomePage.SearchFor().FlightOnly().ToDestination("Benidorm").FromCheckIn("01/09/2014").ToCheckOut("08/09/2014")
            .FromDepartureAirport("Manchester Airport, Manchester, United Kingdom (MAN)").ForAdults(2).Search();

            Assert.That(FlightResultsPage.IsDisplayed(), Is.True, "Flights results not displaying");

            FlightResultsPage.SelectFlight().ByFlightNumber(FlightResultsPageRnd.PickRandomFlight()).Continue();

            Assert.That(ExtrasPage.IsDisplayed(), Is.True, "Extras page is not showing");

            ExtrasPage.Save(Information.Flight);

            Assert.That(ExtrasPage.Data.OutboundAirline == FlightResultsPage.Data.OutboundAirline, Is.True, "OutboundAirline differ from flight search results to extras");
            Assert.That(ExtrasPage.Data.OutboundArrivalAirport == FlightResultsPage.Data.OutboundArrivalAirport, Is.True, "OutboundArrivalAirport differ from flight search results to extras");
            Assert.That(ExtrasPage.Data.OutboundArrivalTime == FlightResultsPage.Data.OutboundArrivalTime, Is.True, "OutboundArrivalTime differ from flight search results to extras");
            Assert.That(ExtrasPage.Data.OutboundDepartureAiport == FlightResultsPage.Data.OutboundDepartureAirport, Is.True, "OutboundDepartureAiport differ from flight search results to extras");
            Assert.That(ExtrasPage.Data.OutboundDepartureTime == FlightResultsPage.Data.OutboundDepartureTime, Is.True, "OutboundDepartureTime differ from flight search results to extras");
            Assert.That(ExtrasPage.Data.OutboundFlightNo == FlightResultsPage.Data.OutboundFlightNo, Is.True, "OutboundFlightNo differ from flight search results to extras");
            Assert.That(ExtrasPage.Data.InboundAirline == FlightResultsPage.Data.InboundAirline, Is.True, "InboundAirline differ from flight search results to extras");
            Assert.That(ExtrasPage.Data.InboundArrivalAirport == FlightResultsPage.Data.InboundArrivalAirport, Is.True, "InboundArrivalAirport differ from flight search results to extras");
            Assert.That(ExtrasPage.Data.InboundArrivalTime == FlightResultsPage.Data.InboundArrivalTime, Is.True, "InboundArrivalTime differ from flight search results to extras");
            Assert.That(ExtrasPage.Data.InbounddDepartureAiport == FlightResultsPage.Data.InboundDepartureAirport, Is.True, "InbounddDepartureAiport differ from flight search results to extras");
            Assert.That(ExtrasPage.Data.InboundDepartureTime == FlightResultsPage.Data.InboundDepartureTime, Is.True, "InboundDepartureTime differ from flight search results to extras");
            Assert.That(ExtrasPage.Data.InboundFlightNo == FlightResultsPage.Data.InboundFlightNo, Is.True, "InboundFlightNo differ from flight search results to extras");

            ExtrasPage.ClickBookNowAndCapture();

            Assert.That(PaymentPage.IsDisplayed(), Is.True, "Payment page is not showing");

            PaymentPage.Save(Information.Flight);

            Assert.That(PaymentPage.Data.TotalPrice == ExtrasPage.Data.TotalPrice, Is.True, "Total price differs between extras and payment");
            Assert.That(PaymentPage.Data.OutboundJourney == ExtrasPage.Data.OutboundJourney, Is.True, "Outbound Journey differs from extras to payment");
            Assert.That(PaymentPage.Data.OutboundFlightNo == ExtrasPage.Data.OutboundFlightNo, Is.True, "Outbound flight number differs from extras to payment");
            Assert.That(PaymentPage.Data.OutboundDepartureTime == ExtrasPage.Data.OutboundDepartureTime, Is.True, "Outbound departure time differs from extras to payment");
            Assert.That(PaymentPage.Data.InboundJourney == ExtrasPage.Data.InboundJourney, Is.True, "Inbound Journey differs from extras to payment");
            Assert.That(PaymentPage.Data.OutboundFlightNo == ExtrasPage.Data.InboundFlightNo, Is.True, "Inbound flight number differs from extras to payment");
            Assert.That(PaymentPage.Data.OutboundDepartureTime == ExtrasPage.Data.InboundDepartureTime, Is.True, "Inbound departure time differs from extras to payment");

            PaymentPage.SelectGuestTitle(1, Title.Mr);
            PaymentPage.TypeGuestFirstName(1, "Test");
            PaymentPage.TypeGuestLastName(1, "Test");
            PaymentPage.SelectGuestDoB(1, "01/01/1985");
            PaymentPage.SelectGuestTitle(1, Title.Mr);
            PaymentPage.TypeGuestFirstName(1, "Test");
            PaymentPage.TypeGuestLastName(1, "Test");
            PaymentPage.SelectGuestDoB(1, "01/02/1985");

            PaymentPage.TypeContactFirstName("Test");
            PaymentPage.TypeContactLastName("Test");
            PaymentPage.TypeContactEmail("*****@*****.**");
            PaymentPage.TypeContactNumber("08719110030");

            PaymentPage.SelectPaymentType(Card.Mastercard);
            PaymentPage.TypeCardHolderName("Test Test");
            PaymentPage.TypeCardNumber("5569510003306537");
            PaymentPage.TypeExpiryDate("03/15");
            PaymentPage.TypeSecurityCode("123");
            PaymentPage.TypePostCode("S11 8NX");

            PaymentPage.TypeStaffReference("smw test");
            PaymentPage.TypeStaffCustomerPhone("1");

            PaymentPage.ClickConfirmAndCapture();
        }
Esempio n. 2
0
        public void ShouldSearch_MostPopularRoutes_ForAllMultiCom_Suppliers(TestScript script)
        {
            //Select united kingdom as the user location
            HomePage.TopPanel.ClickLocation(Location.UnitedKingdom);

            HomePage.SearchFor().FlightOnly().ToDestination(script.Destination).FromCheckIn(Calendar.PickRandomCheckInDate())
            .ToCheckOut(Calendar.PickRandomCheckOutDate()).FromDepartureAirport(script.DepartureAirport)
            .ForAdults(script.Adults).SearchAndCapture();

            //Check if result page is displayed within 60 sec
            Assert.That(FlightResultsPage.IsDisplayed(), Is.True, "Flight Search Result Page isn't displayed within 60 sec");

            //Check if any hote results are displayed for the search
            Assert.That(FlightResultsPage.AreResultsDisplayed(), Is.True, "No Results are available for the Flight search");

            //Check if search criteria match flight search header
            //Assert.That(FlightResultsPage.ValidateSearchCriteria(), Is.True, "Home Search criteria");

            //Confirm all flights depature and return dates are same as the search criteria
            //Assert.That(FlightResultsPage.ValidateResultDates(),Is.True,"Search criteria dates don’t match with the flight results");

            //Confirm all inbond outbond departure airport are correct
            //Assert.That(FlightResultsPage.ValidateResultDestinations(), Is.True, "Search criteria destination don’t match with the flight results");

            //Find supplier on first result page
            //Assert.IsTrue(FlightResultsPage.ContainsFlightFromSupplier(script.TestName),"Supplier name not found in staff 'Supplier' and 'Airline' information");

            //select the first result from first page
            FlightResultsPage.SelectFlight().ByFlightNumber(FlightResultsPageRnd.PickRandomFlight()).ContinueAndCapture();

            //check extra page is displayed
            Assert.That(ExtrasPage.IsDisplayed(), Is.True, "Extras Page isn't displayed");

            //Price checks
            Assert.That(ExtrasPage.ValidatePrice(), Is.True, "Difference in price comparision - Flight price on results page: {0} - Change in Price on Extra Page {1} - Orignal price on extra page: {2}",
                        FlightResultsPage.Data.Price
                        , ExtrasPage.Data.ChangedPrice
                        , ExtrasPage.Data.OrignalPrice);

            //Check total price against changed price
            if (ExtrasPage.Data.TotalPrice == 0)
            {
                ExtrasPage.Save(Information.TotalPrice);
                Assert.AreEqual(ExtrasPage.Data.ChangedPrice, ExtrasPage.Data.TotalPrice, "Difference in price comparision - Changed price on extras page: {0} - Total Price on Extras page {1}"
                                , ExtrasPage.Data.ChangedPrice
                                , ExtrasPage.Data.TotalPrice);
            }

            //save flight information
            ExtrasPage.Save(Information.Flight);

            //Compare selected flight information
            Assert.AreEqual(FlightResultsPage.Data.OutboundDepartureTime, ExtrasPage.Data.OutboundDepartureTime, "FlightResult page Outbound DepartureTime doesn't match with Extra Page");
            Assert.AreEqual(FlightResultsPage.Data.OutboundArrivalTime, ExtrasPage.Data.OutboundArrivalTime, "FlightResult page Outbound ArrivalTime doesn't match with Extra Page");
            Assert.AreEqual(FlightResultsPage.Data.OutboundFlightNo, ExtrasPage.Data.OutboundFlightNo, "FlightResult page Outbound FlightNumber doesn't match with Extra Page");
            Assert.AreEqual(FlightResultsPage.Data.OutboundDepartureAirport, ExtrasPage.Data.OutboundDepartureAiport, "FlightResult page Outbound DepartureAirport doesn't match with Extra Page");
            Assert.AreEqual(FlightResultsPage.Data.OutboundArrivalAirport, ExtrasPage.Data.OutboundArrivalAirport, "FlightResult page Outbound ArrivalAirport doesn't match with Extra Page");
            Assert.AreEqual(FlightResultsPage.Data.OutboundJourneyTime, ExtrasPage.Data.OutboundJourneyTime, "FlightResult page Outbound JourneyTime doesn't match with Extra Page");

            //Assert.AreEqual(FlightResultsPage.Data.OutboundJourney, ExtrasPage.Data.OutboundJourney);


            Assert.AreEqual(FlightResultsPage.Data.InboundFlightNo, ExtrasPage.Data.InboundFlightNo, "FlightResult page Inbound FlightNumber doesn't match with Extra Page");
            Assert.AreEqual(FlightResultsPage.Data.InboundDepartureTime, ExtrasPage.Data.InboundDepartureTime, "FlightResult page Inbound DepartureTime doesn't match with Extra Page");
            Assert.AreEqual(FlightResultsPage.Data.InboundDepartureAirport, ExtrasPage.Data.InbounddDepartureAiport, "FlightResult page Inbound DepartureAirport doesn't match with Extra Page");
            Assert.AreEqual(FlightResultsPage.Data.InboundArrivalAirport, ExtrasPage.Data.InboundArrivalAirport, "FlightResult page Inbound ArrivalAirport doesn't match with Extra Page");
            Assert.AreEqual(FlightResultsPage.Data.InboundArrivalTime, ExtrasPage.Data.InboundArrivalTime, "FlightResult page Inbound ArrivalTime doesn't match with Extra Page");
            //Assert.AreEqual(FlightResultsPage.Data.InboundJourney, ExtrasPage.Data.InboundJourney);
            Assert.AreEqual(FlightResultsPage.Data.InboundJourneyTime, ExtrasPage.Data.InboundJourneyTime, "FlightResult page Inbound JourneyTime doesn't match with Extra Page");

            ExtrasPage.BookFlight().Continue();

            PaymentPage.Save(Information.Flight);

            Assert.AreEqual(ExtrasPage.Data.OutboundDepartureTime, PaymentPage.Data.OutboundDepartureTime, "Extra's page Outbound DepartureTime doesn't match with Payment Page");
            Assert.AreEqual(ExtrasPage.Data.OutboundArrivalTime, PaymentPage.Data.OutboundArrivalTime, "Extra's page Outbound ArrivalTime doesn't match with Payment Page");
            Assert.AreEqual(ExtrasPage.Data.OutboundJourneyTime, PaymentPage.Data.OutboundJourneyTime, "Extra's page Outbound JourneyTime doesn't match with Payment Page");
            Assert.AreEqual(ExtrasPage.Data.OutboundJourney, PaymentPage.Data.OutboundJourney, "Extra's page Outbound Journey doesn't match with Payment Page");
            Assert.AreEqual(ExtrasPage.Data.OutboundAirline, PaymentPage.Data.OutboundAirline, "Extra's page Outbound Airline doesn't match with Payment Page");
            Assert.AreEqual(ExtrasPage.Data.OutboundFlightNo, PaymentPage.Data.OutboundFlightNo, "Extra's page Outbound FlightNumber doesn't match with Payment Page");



            Assert.AreEqual(ExtrasPage.Data.InboundDepartureTime, PaymentPage.Data.InboundDepartureTime, "Extra's page Inbound DepartureTime doesn't match with Payment Page");
            Assert.AreEqual(ExtrasPage.Data.InboundArrivalTime, PaymentPage.Data.InboundArrivalTime, "Extra's page Inbound ArrivalTime doesn't match with Payment Page");
            Assert.AreEqual(ExtrasPage.Data.InboundJourneyTime, PaymentPage.Data.InboundJourneyTime, "Extra's page Inbound JourneyTime doesn't match with Payment Page");
            Assert.AreEqual(ExtrasPage.Data.InboundJourney, PaymentPage.Data.InboundJourney, "Extra's page Inbound Journey doesn't match with Payment Page");
            Assert.AreEqual(ExtrasPage.Data.InboundAirline, PaymentPage.Data.InboundAirline, "Extra's page Inbound Airline doesn't match with Payment Page");
            Assert.AreEqual(ExtrasPage.Data.InboundFlightNo, PaymentPage.Data.InboundFlightNo, "Extra's page Inbound FlightNumber doesn't match with Payment Page");

            PaymentPage.Save(Information.TotalPrice);

            Assert.AreEqual(ExtrasPage.Data.TotalPrice, PaymentPage.Data.TotalPrice);

            PaymentPage.MakeAFlightBooking()
            .ForGuestDetailsNumber(1).AutoFill()
            .ForGuestDetailsNumber(2).AutoFill()
            .ForContactDetails()
            .WithEmail("*****@*****.**").WithPhoneNumber("08719110030")
            .ForPaymentDetails()
            .WithPaymentType(Card.Mastercard)
            .WithCardHolderName("Test")
            .WithCardNo("5454545454545454")
            .WithExpiryDate("10/20")
            .WithSecurityCode("123")
            .WithPostCode("S11 8NX")
            .ForStaffDetails().WithReference("test").WithCustomerPhone("Test")
            .Confirm();

            Assert.IsTrue(ConfirmationPage.IsDisplayed(), "Confirmation page isn't displayed within 60 sec");

            Assert.IsTrue(ConfirmationPage.PNRNoIsDisplayed(), "PNR Number is empty");

            Assert.Pass(script.TestName + " Sucessful");
        }
        public void ShouldBookRandomSingleRoom_ForDestination_Benidorm()
        {
            //HomePage.ClickFlightOnly();
            //HomePage.TypeFlightDestination("Benidorm");
            //HomePage.SelectCheckIn("01/06/2014");
            //HomePage.SelectCheckOut("08/06/2014");
            //HomePage.SelectAirport("London (All Airports), London, United Kingdom (LON)");
            //HomePage.SelectAdults(2);
            //HomePage.SelectChildren(2, new int[] {2,3});
            //HomePage.ClickSearch();

            //HomePage.SearchFor().FlightOnly().ToDestination("Benidorm").FromCheckIn("01/09/2014")
            //    .ToCheckOut("08/09/2014").FromDepartureAirport("London (All Airports), London, United Kingdom (LON)")
            //    .ForAdults(2).WithChildren(2).OfAges(2, 3).Search();

            HomePage.SearchFor().HotelOnly().ToDestination("Benidorm").FromCheckIn("01/09/2014")
            .ToCheckOut("15/09/2014").ForAdults(2).Search();

            Assert.That(HotelResultsPage.IsDisplayed(), Is.True, "Hotel result page is not displayed");

            HotelResultsPage.ClickHotelNumber(1);

            HotelDetailPage.ClickAvaliableRoom(1);

            Assert.That(ExtrasPage.IsDisplayed(), Is.True, "Extras Page not showing");

            //TODO
            ExtrasPage.Save(Information.Hotel);

            Assert.That(HotelResultsPage.Data.HotelName == ExtrasPage.Data.HotelName, Is.True, "Differing hotel names from SR to Extras");

            //Assert.That(HotelResultsPage.Data.Rooms[0].RoomPrice+==ExtrasPage.Data.

            ExtrasPage.BookHotel().Continue();

            Assert.That(PaymentPage.IsDisplayed(), Is.True, "Payment page not displaying");

            PaymentPage.Save(Information.Hotel);

            Assert.That(ExtrasPage.Data.HotelName == PaymentPage.Data.HotelName, Is.True, "Hotel name differs from Extras to Payment");

            PaymentPage.MakeAHotelBooking()
            .ForGuestDetailsNumber(1).OfRoomNo(1).WithTitle(Title.Mr).WithFirstName("Test").WithLastName("Test")
            .ForGuestDetailsNumber(2).OfRoomNo(1).WithTitle(Title.Mr).WithFirstName("Test").WithLastName("Test")
            .ForContactDetails().TypeFirstName("Test").WithLastName("Test").WithEmail("*****@*****.**").WithPhoneNumber("08719110030")
            .ForPaymentDetails()
            .WithPaymentType(Card.Mastercard)
            .WithCardHolderName("Test Test")
            .WithCardNo("5569510003306537")
            .WithExpiryDate("03/15")
            .WithSecurityCode("123")
            .WithPostCode("S11 8NX")
            .ForStaffDetails().WithReference("test").WithCustomerPhone("1")
            .Confirm();

            //Assert.That(PaymentPage.Check3DSPage(), Is.True, "3DS page not displaying");
            Assert.IsTrue(ConfirmationPage.IsDisplayed(), "Confirmation page isn't displayed within 60 sec");

            Assert.IsTrue(ConfirmationPage.PNRNoIsDisplayed(), "PNR Number is empty");

            //Assert.That(PaymentPage.ValidateConfirmationMsg(), Is.True, "Confirmation page not showing");
        }