public void DemoTest1() { var driver = DriverUtils.GetDriver(); try { Data dataObj = new Data("TestCaseData_Authentication_1"); Logger.Info("Starting Test"); LoginPage loginPage = new LoginPage(driver); // Entering UserName and Password details of login user loginPage.Login(dataObj.GetValue("UserName"), dataObj.GetValue("Password")); Report.LogPass("Successfully Logged into the Application"); Header header = new Header(driver); // Search required product from Product Catalog header.SearchProduct(dataObj.GetValue("SearchProduct")); Assert.AreEqual(driver.Title, "Results"); Products products = new Products(driver); // Select required product from search results based on product type string productName = products.SelectProductFromSearchResults(dataObj.GetValue("ProductType")); Report.LogPass("Successfully selected product" + productName + " from search results"); Assert.AreEqual(driver.Title, productName); // Enter product quantity products.EnterProductQuantity(dataObj.GetValue("ProdQty")); Report.LogPass("Entered product quantity in Product page"); products.ClickAddToCartButton(); Report.LogPass("Successfully clicked on Add To Cart button in Product page"); // Verifying that correct no of products added to the cart NoOfProductsAddedInCart = header.GetNoOfProductsAddedInCart(); Assert.AreEqual(dataObj.GetValue("ProdQty"), NoOfProductsAddedInCart, "Incorrect no of products added to the cart"); header.ClickCartIcon(); Report.LogPass("Clicked cart icon available in the header"); Assert.AreEqual(driver.Title, "My Cart"); Cart cart = new Cart(driver); cart.UpdateProductQuantity(dataObj.GetValue("UpdatedProdQty")); Report.LogPass("Updated product quantity in My Cart page"); cart.ClickUpdateTotalsButton(); Report.LogPass("Clicked Updated Totals button in My Cart page"); NoOfProductsAddedInCart = header.GetNoOfProductsAddedInCart(); Assert.AreEqual(dataObj.GetValue("UpdatedProdQty"), NoOfProductsAddedInCart, "Incorrect no of products added to the cart"); Report.LogPass("Verified that no of products added in the cart is same as updated quantity of product"); cart.ClickCheckOutButton(); Report.LogPass("Clicked Checkout button in My Cart page"); Assert.AreEqual(driver.Title, "Checkout"); Agreements agreements = new Agreements(driver); agreements.SelectAgreeButtonInAgreementsPage(); Report.LogPass("Clicked agree check box in Agreements page"); Assert.IsTrue(agreements.IsPrintsthisPageLinkDsiaplyed()); Report.LogPass("Verified Print this page link is available in Agreements page"); agreements.ClickContinueButtonInAgreementsPage(); Report.LogPass("Clicked continue button in Agreements page"); Shipping shipping = new Shipping(driver); List <String> receipientDetails = shipping.GetRecepientFieldsValuesInShippingPage(); Assert.AreEqual(receipientDetails[0].ToString(), dataObj.GetValue("Fname")); Assert.AreEqual(receipientDetails[1].ToString(), dataObj.GetValue("Lname")); Report.LogPass("Verified Receipient fields has current user's first name and last name values in Shipping page"); Assert.IsTrue(shipping.IsShippingSpeedCheckBoxSelected()); Report.LogPass("Verified shipping check box is checked in Shipping page"); List <String> shippingAddrsDetails = shipping.GetShippingAddressValues(); Report.LogPass("Collected all the shipping address values from shipping page"); string orgEmailValueInShippingPage = shipping.GetOrgEmailAddressValue(); shipping.ClickChangeEmailButton(); Report.LogPass("Clicked Change Email button in Shipping page"); OrgDetails orgDetails = new OrgDetails(driver); List <String> orgEmail = orgDetails.getOrgDetailsInOrgDetailsPage(); Report.LogPass("Collected all the organization details from Organization Information page"); Assert.AreEqual(orgEmailValueInShippingPage, orgEmail[0]); Assert.AreEqual(shippingAddrsDetails[0].ToString(), orgEmail[1]); Assert.AreEqual(shippingAddrsDetails[1].ToString(), orgEmail[2]); Assert.AreEqual(shippingAddrsDetails[2].ToString(), "US"); Assert.AreEqual(shippingAddrsDetails[3].ToString(), "IN"); Assert.AreEqual(shippingAddrsDetails[4].ToString().Trim(), orgEmail[3]); Assert.AreEqual(shippingAddrsDetails[5].ToString().Trim(), orgEmail[4]); Report.LogPass("verified that orgnization address details are matched with shipping address details in shipping page"); orgDetails.ClickCancelButtonInOrgDetailsPage(); Report.LogPass("Clicked cancel buton in organization information page"); Report.LogPass("Clicked agree check box in Agreements page"); cart.ClickCheckOutButton(); agreements.SelectAgreeButtonInAgreementsPage(); agreements.ClickContinueButtonInAgreementsPage(); shipping.ClickContinueButtonInShippingPage(); Report.LogPass("Navigated to the Billing page"); Billing billing = new Billing(driver); List <String> calcTotalAmntOfeachProduct = billing.CalculateTotalAmountOfEachProductInBillingPage(); List <String> getTotalAmntOfeachProd = billing.GetTotalAmountOfEachProductInBillingPage(); for (int i = 0; i < getTotalAmntOfeachProd.Count; i++) { Assert.AreEqual(calcTotalAmntOfeachProduct[i], getTotalAmntOfeachProd[i]); } Report.LogPass("Verified total amount of each product is correct in Billing page"); String actualSubTotal = billing.CalculateSubTotalAmountInBillingPage(getTotalAmntOfeachProd); String expectedSubTotal = billing.GetSubTotalAmountInBillingPage(); Assert.AreEqual(expectedSubTotal, actualSubTotal); Report.LogPass("Verified sub total amount is correct in Billing page"); String actualTotal = billing.CalculateTotalDueAmountInBillingPage(); String expectedTotal = billing.GetTotalDueAmountInBillingPage(); Assert.AreEqual(expectedTotal, actualTotal); Report.LogPass("Verified totalDue amount is correct in Billing page"); billing.SelectCreditCardPaymentMethod(); Report.LogPass("Selected credit card payment method in Billing page"); List <String> CCBAddrEditMode = billing.IsCreditCardBillingAddressDetailsDisabledInBillingPage(); for (int i = 0; i < CCBAddrEditMode.Count; i++) { Assert.IsNull(CCBAddrEditMode[i]); } Report.LogPass("Verified Credit card billing address details are enabled in Billing page when Credit card payment method is selected"); List <String> CCBDetailsEditMode = billing.IsCreditCardDetailsDisabledInBillingPage(); for (int i = 0; i < CCBDetailsEditMode.Count; i++) { Assert.IsNull(CCBDetailsEditMode[i]); } Report.LogPass("Verified Credit card billing details are enabled in Billing page when Credit card payment method is selected"); billing.SelectCheckPaymentMethod(); Report.LogPass("Selected check payment method in Billing page"); List <String> CCBAddrDisabledMode = billing.IsCreditCardBillingAddressDetailsDisabledInBillingPage(); for (int i = 0; i < CCBAddrDisabledMode.Count; i++) { Assert.IsNotNull(CCBAddrDisabledMode[i]); } Report.LogPass("Verified Credit card billing address details are disabled in Billing page when check payment method is selected"); List <String> CCBDetailsDisabledMode = billing.IsCreditCardDetailsDisabledInBillingPage(); for (int i = 0; i < CCBDetailsDisabledMode.Count; i++) { Assert.IsNotNull(CCBDetailsDisabledMode[i]); } Report.LogPass("Verified Credit card billing details are disabled in Billing page when check payment method is selected"); IList <IWebElement> CCTypeOptions = billing.GetAllCardTypeOptionsInBillingPage(); Assert.AreEqual("MasterCard", CCTypeOptions[0].Text); Assert.AreEqual("Visa", CCTypeOptions[1].Text); Assert.AreEqual("Amex", CCTypeOptions[2].Text); Report.LogPass("Verified Credit card type options has only 'MasterCard', 'Visa', 'Amex' values in Billing page"); billing.SelectCreditCardPaymentMethod(); Report.LogPass("Selected credit card payment method is selected"); string actualValidationMsg = billing.ValidationMsgOnInvalidCCNumberInBillingPage(dataObj.GetValue("InValidCCNumber"), dataObj.GetValue("CCType")); Report.LogPass("Entered invalid credit card number"); Assert.AreEqual("Please enter a valid credit card number.", actualValidationMsg); Report.LogPass("Verified validation message is getting displayed when invalid credit card number is entered"); billing.EnterCardNumberInBillingPage(dataObj.GetValue("ValidCCNumber")); billing.SelectCCExpirationMonth(dataObj.GetValue("CCExpMonth")); Report.LogPass("Enter valid credit card number and expired month details in Billing page"); IList <IWebElement> actualCCExpiryDetails = billing.GetCCExpirationYearDetails(); for (int i = 1; i < actualCCExpiryDetails.Count; i++) { Assert.Greater((Int32.Parse(actualCCExpiryDetails[i].Text)), DateTime.Now.Year); } Report.LogPass("Verified all the values available in credit card expired year field are greater than current year"); billing.SelectSameAsShippingAddress(); Report.LogPass("Selected SameAsShipping address check box in Billing page"); CCBAddrDetails = billing.GetCCBAddressValuesInBillingPage(); Assert.AreEqual("Test", CCBAddrDetails[0]); Assert.AreEqual("User", CCBAddrDetails[1]); Assert.AreEqual("dddd", CCBAddrDetails[2]); Assert.AreEqual("ffff", CCBAddrDetails[3]); Assert.AreEqual("US", CCBAddrDetails[4]); Assert.AreEqual("IN", CCBAddrDetails[5]); Assert.AreEqual("dddd", CCBAddrDetails[6].Trim()); Assert.AreEqual("45123", CCBAddrDetails[7].Trim()); Report.LogPass("Verified all the credit card billing address values are populated automatically when SameAsShipping Address check box is selected"); billing.SelectSameAsShippingAddress(); billing.EnterCCBAddrDetailsInBillingPage(CCBAddrDetails); billing.clickPlaceRequestButton(); Report.LogPass("Clicked on Place Request button in Billing page"); OrderConfirmation ordConfirm = new OrderConfirmation(driver); ordConfirm.clickProdDonationFAQLinkInOrderConfirmationPage(); Report.LogPass("Clicked on Product Donation History Link"); Assert.AreEqual("Product Donation FAQ", driver.Title); driver.Navigate().Back(); ordConfirm.clickDonationHistoryLinkInOrderConfirmationPage(); Report.LogPass("Clicked on Donation Request History Link"); Assert.AreEqual("Donation Request History", driver.Title); driver.Navigate().Back(); List <String> emails = ordConfirm.getConfirmationEmailValueInOrderConfirmationPage(); Assert.AreEqual(dataObj.GetValue("Memail"), emails[0].ToString()); Assert.AreEqual(dataObj.GetValue("Oemail"), emails[1].ToString()); Report.LogPass("Verified confirmation and delivery instruction email fields has values"); Assert.IsNotEmpty(ordConfirm.getRequestNumberInOrderConfirmationPage()); Report.LogPass("Verified Request Number field has value"); Assert.AreEqual(actualTotal, ordConfirm.getTotalDueAmountInOrderConfirmationPage()); Report.LogPass("verified total due amount in Order Confirmation page is same as Billing page"); List <String> reqDetails = ordConfirm.getRequestDetailsInOrderConfirmationPage(); for (int i = 0; i < reqDetails.Count; i++) { Assert.IsNotEmpty(reqDetails[i]); } Report.LogPass("Verified request details fields has values in Order Confirmation page"); } catch (Exception e) { Report.LogException(e); driver.SaveScreenshotAndPageSource(); throw e; } }