예제 #1
0
        public void HotelDetailsPageOnlyOneRoomShouldReturnValidData()
        {
            string destination = "London, United Kingdom";
            string checkIn     = DateTime.Today.AddMonths(5).ToShortDateString();
            string checkOut    = DateTime.Today.AddMonths(5).AddDays(7).ToShortDateString();
            int    adults      = 4;
            int    children    = 2;

            int[] childrenAges = new int[] { 5, 7 };

            HomePage.SearchFor().HotelOnly().ToHotelName(destination).FromCheckIn(checkIn).ToCheckOut(checkOut)
            .ForAdults(adults).WithChildren(children).OfAges(childrenAges).SearchAndCapture();

            //check if result page is displayed
            Assert.AreEqual(true, HotelResultsPage.IsDisplayed(), "Hotel Search Result Page isn't displayed");

            int hotelNumber = 1;

            HotelResultsPage.ClickHotelNumberAndCapture(hotelNumber);

            //check if result page is displayed
            Assert.AreEqual(true, HotelDetailPage.IsDisplayed(), "Hotel Details Page isn't displayed");

            int availableRoom = 2;

            HotelDetailPage.SelectRoom().OnlyOneRoomWithAvailableRoom(availableRoom).ContinueAndCapture();

            Assert.IsTrue(HotelDetailPage.Data.LoadingTime.TotalMilliseconds > 0);
            Assert.AreEqual(1, HotelDetailPage.Data.Rooms.Length);
            Assert.AreEqual(availableRoom, HotelDetailPage.Data.Rooms[0].AvailableRoom);
        }
        public void ShouldBookRandomSupplier_ForDestination_Majorca()
        {
            //Select the uk location
            HomePage.TopPanel.ClickLocation(Location.UnitedKingdom);

            //Enter Hotel only search data
            HomePage.SearchFor().HotelOnly().ToDestination("Majorca").FromCheckIn(Calendar.PickRandomCheckInDate())
            .ToCheckOut(Calendar.PickRandomCheckOutDate()).SearchAndCapture();

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

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

            //Select random hotel from the first result page
            HotelResultsPage.ClickHotelNumber(HotelResultsPageRnd.PickRandomHotel());

            //Check HotelDetailPage is displayed
            Assert.That(HotelDetailPage.IsDisplayed(), Is.True, "Hotel Detail page is not displayed");

            //Select the first available room from the list
            HotelDetailPage.SelectRoom().OnlyOneRoomWithAvailableRoom(1).ContinueAndCapture();

            //Check if the extra page is displayed
            Assert.That(ExtrasPage.IsDisplayed(), Is.True, "Extras page is not displayed");

            //Click Booknow button
            ExtrasPage.BookHotel().ContinueAndCapture();

            //Check Payment Page is displayed
            Assert.That(PaymentPage.IsDisplayed(), Is.True, "Payment page is not displayed");
        }
        public void HotelOnlyDestinationSearch_Benidorm()
        {
            //Select the uk location
            HomePage.TopPanel.ClickLocation(Location.UnitedKingdom);

            //Enter Hotel only search data
            HomePage.SearchFor().HotelOnly().ToDestination("Mallorca (Majorca)").FromCheckIn(Calendar.PickRandomCheckInDate())
            .ToCheckOut(Calendar.PickRandomCheckOutDate()).SearchAndCapture();

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

            //Check if any hote results are displayed for the search
            Assert.That(HotelResultsPage.AreResultsDisplayed(), "No Results are available for the hotel search");

            //Select first room option of the first hotel displayed on the very first result page
            HotelResultsPage.SelectRoom().ByHotelNumber(HotelResultsPageRnd.PickRandomHotel()).OnlyOneRoomWithAvailableRoom(1).ContinueAndCapture();

            //Check if the extra page is displayed
            Assert.That(ExtrasPage.IsDisplayed(), "Extras page is not displayed");

            //Click Booknow button
            ExtrasPage.BookHotel().ContinueAndCapture();

            //Check Payment Page is displayed
            Assert.That(PaymentPage.IsDisplayed(), "Payment page is not displayed");
        }
예제 #4
0
        public void ShouldBookFromSupplier_Sol_ForDestination_Benidorm()
        {
            //Enter Hotel only search data
            HomePage.SearchFor().HotelOnly().ToHotelName("Benidorm").FromCheckIn(Calendar.PickRandomCheckInDate())
            .ToCheckOut(Calendar.PickRandomCheckOutDate()).Search();

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

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

            //check if sol supplier is available from first results page
            Assert.That(HotelResultsPage.ContainsRoomFromSupplier("SOL (PELICANOS OCAS) (A)"), Is.True, "Sol supplier isn't displayed on first result page");

            //Select first room option of the first hotel displayed on the very first result page
            HotelResultsPage.SelectRoom().ByFirstSupplier("SOL (PELICANOS OCAS) (A)").Continue();

            //Check if the extra page is displayed
            Assert.That(ExtrasPage.IsDisplayed(), Is.True, "Extras page is not displayed");

            //Click Booknow button
            ExtrasPage.BookHotel().Continue();

            //Check Payment Page is displayed
            Assert.That(PaymentPage.IsDisplayed(), Is.True, "Payment page is not displayed");
        }
예제 #5
0
        public void HomePageHotelOnlyOneRoomShouldReturnValidData()
        {
            string destination = "London, United Kingdom";
            string checkIn     = DateTime.Today.AddMonths(5).ToShortDateString();
            string checkOut    = DateTime.Today.AddMonths(5).AddDays(7).ToShortDateString();
            int    adults      = 4;
            int    children    = 2;

            int[] childrenAges = new int[] { 5, 7 };

            HomePage.SearchFor().HotelOnly().ToHotelName(destination).FromCheckIn(checkIn).ToCheckOut(checkOut)
            .ForAdults(adults).WithChildren(children).OfAges(childrenAges).SearchAndCapture();

            //check if result page is displayed
            Assert.AreEqual(true, HotelResultsPage.IsDisplayed(), "Hotel Search Result Page isn't displayed");

            Assert.AreEqual(SearchOption.HotelOnly, HomePage.Data.SearchOption);
            Assert.IsTrue(HomePage.Data.SearchTime.TotalMilliseconds > 0);
            Assert.AreEqual(destination, HomePage.Data.Destination);
            Assert.AreEqual(DateTime.Parse(checkIn).ToString("dd MMM yyyy"), HomePage.Data.CheckInDate);
            Assert.AreEqual(DateTime.Parse(checkOut).ToString("dd MMM yyyy"), HomePage.Data.CheckOutDate);
            Assert.AreEqual(1, HomePage.Data.Rooms.Length);
            Assert.AreEqual(adults, HomePage.Data.Rooms[0].Adults);
            Assert.AreEqual("4 Adults", HomePage.Data.Rooms[0].AdultsLabel);
            Assert.AreEqual(children, HomePage.Data.Rooms[0].Children);
            Assert.AreEqual("2 Children", HomePage.Data.Rooms[0].ChildrenLabel);
            Assert.AreEqual(childrenAges, HomePage.Data.Rooms[0].ChildrenAges);
        }
        public void ShouldBookFromSupplier_JT_ForDestination_Paris()
        {
            //Select the uk location
            HomePage.TopPanel.ClickLocation(Location.UnitedKingdom);

            //Enter Hotel only search data
            HomePage.SearchFor().HotelOnly().ToHotelName("Paris, France").FromCheckIn(Calendar.PickRandomCheckInDate())
            .ToCheckOut(Calendar.PickRandomCheckOutDate()).Search();

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

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

            //check if JT supplier is available from first results page
            Assert.That(HotelResultsPage.ContainsRoomFromSupplier("JT (Y)"), Is.True, "JT supplier isn't displayed on first result page");

            //Select first room option of the first hotel displayed on the very first result page
            HotelResultsPage.SelectRoom().ByFirstSupplier("JT (Y)").Continue();

            //Check if the extra page is displayed
            Assert.That(ExtrasPage.IsDisplayed(), Is.True, "Extras page is not displayed");

            //Click Booknow button
            ExtrasPage.BookHotel().Continue();

            //Check Payment Page is displayed
            Assert.That(PaymentPage.IsDisplayed(), Is.True, "Payment page is not displayed");
        }
예제 #7
0
        public void HotelBookingTestPaths()
        {
            //Enter flight only search data
            HomePage.SearchFor().HotelOnly().ToHotelName("Tenerife (Main), Tenerife, Canaries (TFS)").FromCheckIn("20/06/2014")
            .ToCheckOut("27/07/2014").ForAdults(2).AddAnotherRoom().ForAdults(3).WithChildren(2).OfAges(1, 3).SearchAndCapture();

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

            Assert.That(HotelResultsPage.AreResultsDisplayed(), Is.True, "No hotel results page are displayed");

            //Select first room option of the first hotel displayed on the very first result page
            HotelResultsPage.SelectRoom().ByHotelName("Iberostar Grand Hotel Mencey").ForRoomNumber(1).WithAvailableRoom(1)
            .ForRoomNumber(2).WithAvailableRoom(2).ContinueAndCapture();

            //Check if the extra page is displayed
            Assert.That(ExtrasPage.IsDisplayed(), Is.True, "Extras page is not displayed");

            ExtrasPage.Save(Information.FlightAndHotel);

            //ExtrasPage.Confirm(Information.FlightAndHotel);

            ExtrasPage.ClickBookNow();

            Assert.That(PaymentPage.IsDisplayed(), Is.True, "Payment Page not displayed");

            PaymentPage.Save(Information.FlightAndHotel);
        }
예제 #8
0
        public void ShouldBook_1st_MostPopularFlightAndHotel_Benidorm()
        {
            //Select the uk location
            HomePage.TopPanel.ClickLocation(Location.UnitedKingdom);

            //Enter Hotel only search data
            HomePage.SearchFor().FlightAndHotel().ToDestination("Benidorm, Spain").FromCheckIn(Calendar.PickRandomCheckInDate())
            .ToCheckOut(Calendar.PickRandomCheckOutDate()).FromDepartureAirport(HomePageRnd.PickRandomFlightDepartureAirport()).SearchAndCapture();

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

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

            //Select Room 1 of a random hotel from the first result page
            FlightResultsPage.SelectFlight().ByFlightNumber(FlightResultsPageRnd.PickRandomFlight()).ContinueAndCapture();

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

            //Check if any hote results are displayed for the search
            Assert.That(HotelResultsPage.AreResultsDisplayed(), "No Results are available for the hotel search");

            //Select random hotel from the first result page
            HotelResultsPage.ClickHotelNumber(HotelResultsPageRnd.PickRandomHotel());

            //Check HotelDetailPage is displayed
            Assert.That(HotelDetailPage.IsDisplayed(), "Hotel Detail page is not displayed");

            //Select the first available room from the list
            HotelDetailPage.SelectRoom().OnlyOneRoomWithAvailableRoom(1).ContinueAndCapture();

            //Check if the extra page is displayed
            Assert.That(ExtrasPage.IsDisplayed(), "Extras page is not displayed");

            //check if Airport Transfer is displayed
            Assert.That(ExtrasPage.IsExtraDisplayed(Extras.Travelinsurance), "TravelInsurrance is not Visible on extra page");

            //Expand Car Hire
            ExtrasPage.ExpandExtraLink(Extras.Travelinsurance);

            //Confirm if any results are available
            Assert.That(ExtrasPage.AreResultsDisplayed(Extras.Travelinsurance), "TravelInsurrance results not available");

            //Pick a random option from travel insurrance
            ExtrasPage.PickRandomTravelInsurance();

            //Add Airporttranser and click Booknow button
            ExtrasPage.BookFlightAndHotel().ContinueAndCapture();

            //Check Payment Page is displayed
            Assert.That(PaymentPage.IsDisplayed(), "Payment page is not displayed");
        }
예제 #9
0
        public void HotelResultsPageMultipleRoomsShouldReturnValidData()
        {
            string destination = "London, United Kingdom";
            string checkIn     = DateTime.Today.AddMonths(5).ToShortDateString();
            string checkOut    = DateTime.Today.AddMonths(5).AddDays(7).ToShortDateString();
            int    adults      = 2;
            int    children    = 1;

            int[] childrenAges = new int[] { 5 };
            int   adults2      = 1;
            int   children2    = 2;

            int[] childrenAges2 = new int[] { 1, 2 };
            int   adults3       = 3;
            int   children3     = 1;

            int[] childrenAges3 = new int[] { 3 };

            HomePage.SearchFor().HotelOnly().ToHotelName(destination).FromCheckIn(checkIn).ToCheckOut(checkOut)
            .ForAdults(adults).WithChildren(children).OfAges(childrenAges)
            .AddAnotherRoom().ForAdults(adults2).WithChildren(children2).OfAges(childrenAges2)
            .AddAnotherRoom().ForAdults(adults3).WithChildren(children3).OfAges(childrenAges3)
            .SearchAndCapture();

            //check if result page is displayed
            Assert.AreEqual(true, HotelResultsPage.IsDisplayed(), "Hotel Search Result Page isn't displayed");

            string hotelName = "Hilton London Metropole";
            int    availableRoom = 1, availableRoom2 = 2, availableRoom3 = 1;

            HotelResultsPage.SelectRoom().ByHotelName(hotelName)
            .ForRoomNumber(1).WithAvailableRoom(availableRoom)
            .ForRoomNumber(2).WithAvailableRoom(availableRoom2)
            .ForRoomNumber(3).WithAvailableRoom(availableRoom3).ContinueAndCapture();

            //check if result page is displayed
            Assert.AreEqual(true, ExtrasPage.IsDisplayed(), "Hotel Extras Page isn't displayed");

            Assert.IsTrue(!String.IsNullOrEmpty(HotelResultsPage.Data.HotelSearchGuid));
            Assert.IsTrue(HotelResultsPage.Data.LoadingTime.TotalMilliseconds > 0);
            Assert.AreEqual(hotelName, HotelResultsPage.Data.HotelName);
            Assert.AreEqual(3, HotelResultsPage.Data.Rooms.Length);
            Assert.AreEqual(availableRoom, HotelResultsPage.Data.Rooms[0].AvailableRoom);
            Assert.AreEqual(availableRoom2, HotelResultsPage.Data.Rooms[1].AvailableRoom);
            Assert.AreEqual(availableRoom3, HotelResultsPage.Data.Rooms[2].AvailableRoom);
        }
예제 #10
0
        public void ShouldBook_2nd_MostPopularFlightAndHotel_Tenerife()
        {
            //Select the uk location
            HomePage.TopPanel.ClickLocation(Location.UnitedKingdom);

            //Enter Hotel only search data
            HomePage.SearchFor().FlightAndHotel().ToDestination("Tenerife, Canaries").FromCheckIn(Calendar.PickRandomCheckInDate())
            .ToCheckOut(Calendar.PickRandomCheckOutDate()).FromDepartureAirport(HomePageRnd.PickRandomFlightDepartureAirport()).SearchAndCapture();

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

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

            //Select Room 1 of a random hotel from the first result page
            FlightResultsPage.SelectFlight().ByFlightNumber(FlightResultsPageRnd.PickRandomFlight()).ContinueAndCapture();

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

            //Check if any hote results are displayed for the search
            Assert.That(HotelResultsPage.AreResultsDisplayed(), "No Results are available for the hotel search");

            //Select random hotel from the first result page
            HotelResultsPage.ClickHotelNumber(HotelResultsPageRnd.PickRandomHotel());

            //Check HotelDetailPage is displayed
            Assert.That(HotelDetailPage.IsDisplayed(), "Hotel Detail page is not displayed");

            //Select the first available room from the list
            HotelDetailPage.SelectRoom().OnlyOneRoomWithAvailableRoom(1).ContinueAndCapture();

            //Check if the extra page is displayed
            Assert.That(ExtrasPage.IsDisplayed(), "Extras page is not displayed");

            //Click Booknow button
            ExtrasPage.BookFlightAndHotel().ContinueAndCapture();

            //Check Payment Page is displayed
            Assert.That(PaymentPage.IsDisplayed(), "Payment page is not displayed");
        }
        public void ShouldBookRandomMultipleRoom_ForDestination_Mallorca()
        {
            //HomePage.TopPanel.ClickLocation(Location.UnitedKingdom);

            HomePage.SearchFor().HotelOnly().ToDestination("Mallorca").FromCheckIn("01/09/2014").ToCheckOut("08/09/2014")
            .ForAdults(2).AddAnotherRoom().ForAdults(1).WithChildren(2).OfAges(0, 5).Search();

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

            HotelResultsPage.SelectRoom().ByHotelNumber(5).ForRoomNumber(1).WithAvailableRoom(1).ForRoomNumber(2).WithAvailableRoom(2).Continue();

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

            ExtrasPage.Save(Information.Hotel);

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

            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")
            .ForGuestDetailsNumber(1).OfRoomNo(2).WithTitle(Title.Mr).WithFirstName("Test").WithLastName("Test")
            .ForGuestDetailsNumber(2).OfRoomNo(2).WithTitle(Title.Mr).WithFirstName("Test").WithLastName("Test")
            .ForGuestDetailsNumber(3).OfRoomNo(2).WithTitle(Title.Mr).WithFirstName("Test").WithLastName("Test")
            .ForContactDetails().AutoFill()
            .ForPaymentDetails()
            .WithPaymentType(Card.Mastercard)
            .WithCardHolderName("Test Test")
            .WithCardNo("5569510003306537")
            .WithExpiryDate("03/15")
            .WithSecurityCode("123")
            .WithPostCode("S11 8NX")
            .ForStaffDetails().WithReference("test").WithCustomerPhone("1")
            .Confirm();
        }
예제 #12
0
        public void ShouldMakeFlightOnlyBookingWithRandomData()
        {
            //Enter Hotel only search data
            HomePage.SearchFor().FlightOnly().ToDestination("Malaga").FromCheckIn(Calendar.PickRandomCheckInDate())
            .ToCheckOut(Calendar.PickRandomCheckOutDate()).FromDepartureAirport("Dublin, Republic Of Ireland (DUB)")
            .ForAdults(2).WithChildren(2).OfAges(2, 4).Search();

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

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

            //Search for supplier TP
            //Assert.That(FlightResultsPage.ContainsFlightFromSupplier("TP"), "TP supplier is not displayed on first result page");

            //Select first room option of the first hotel displayed on the very first result page
            //FlightResultsPage.SelectFlight().ByFirstSupplier("TP").ContinueAndCapture();

            //Check if the extra page is displayed
            //Assert.That(ExtrasPage.IsDisplayed(), "Extras page is not displayed within 60 sec");
            FlightResultsPage.SelectFlight().ByFlightNumber(1).ContinueAndCapture();

            Assert.That(HotelResultsPage.IsDisplayed(), "Hotel Result page is not displayed");

            Assert.That(HotelResultsPage.AreResultsDisplayed(), "No hotel results are available");

            HotelResultsPage.SelectRoom().ByHotelNumber(1).ForRoomNumber(1).WithAvailableRoom(1).Continue();


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

            ExtrasPage.Confirm(Information.Flight);

            //Click Booknow button
            ExtrasPage.BookFlight().Continue();

            //Check Payment Page is displayed
            Assert.That(PaymentPage.IsDisplayed(), "Payment page is not displayed");
        }
예제 #13
0
        public void ShouldMakeFlightAndHotelBooking()
        {
            //Enter flight only search data
            HomePage.SearchFor().FlightAndHotel().ToDestination("Tenerife (Main), Tenerife, Canaries (TFS)").FromCheckIn("20/06/2014")
            .ToCheckOut("27/07/2014").FromDepartureAirport("London Heathrow, London, United Kingdom (LHR)")
            .ForAdults(2).SearchAndCapture();

            //check if result page is displayed
            Assert.That(FlightResultsPage.IsDisplayed(), Is.True, "Flight Search Result Page isn't displayed");
            Assert.That(FlightResultsPage.AreResultsDisplayed(), Is.True, "No results are displayed");

            //Search for supplier
            //Assert.That(FlightResultsPage.ContainsFlightFromSupplier("TP"), Is.True, "Supplier not found on current select page");

            FlightResultsPage.SelectFlight().ByFlightNumber(1).ContinueAndCapture();

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

            Assert.That(HotelResultsPage.AreResultsDisplayed(), Is.True, "No hotel results page are displayed");

            //check if ItalCamel supplier is available from first results page
            //Assert.That(HotelResultsPage.ContainsRoomFromSupplier("ItalCamel (6)"), Is.True, "ItalCamel supplier isn't displayed on first result page");

            //Select first room option of the first hotel displayed on the very first result page
            HotelResultsPage.ClickAvailableRoom(1, 1);

            //Check if the extra page is displayed
            Assert.That(ExtrasPage.IsDisplayed(), Is.True, "Extras page is not displayed");

            ExtrasPage.Save(Information.FlightAndHotel);

            //ExtrasPage.Confirm(Information.FlightAndHotel);

            ExtrasPage.ClickBookNow();

            Assert.That(PaymentPage.IsDisplayed(), Is.True, "Payment Page not displayed");

            PaymentPage.Save(Information.FlightAndHotel);
        }
예제 #14
0
        public void ShouldBook_4th_MostPopularHotel_Tenerife()
        {
            //Enter Hotel only search data
            HomePage.SearchFor().HotelOnly().ToHotelName("Tenerife").FromCheckIn(Calendar.PickRandomCheckInDate())
            .ToCheckOut(Calendar.PickRandomCheckOutDate()).Search();

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

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

            //Select first room option of the first hotel displayed on the very first result page
            HotelResultsPage.SelectRoom().ByHotelNumber(1).OnlyOneRoomWithAvailableRoom(1).Continue();

            //Check if the extra page is displayed
            Assert.That(ExtrasPage.IsDisplayed(), Is.True, "Extras page is not displayed");

            //Click Booknow button
            ExtrasPage.BookHotel().Continue();

            //Check Payment Page is displayed
            Assert.That(PaymentPage.IsDisplayed(), Is.True, "Payment page is not displayed");
        }
        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");
        }