public void AddCreditCardUsingNewAddress() { var testData = TestDataFactory.CreateLoginAccount(); #region test data models var cardtoken = new PaymentOptionModel { CardNumber = "5582508629687473", ExpirationMont = "12", ExpirationYear = "24", HolderName = "Test corp", Cvv = "077", LastFourDigits = "7473" }; var address = new AddressModel { country = "US", CompanyName = "QA Softtek Automation", state = "CO", city = "Denver", street = "Elm street", postal = "22780", apartment = "24" }; #endregion IndexPage indexPage = new IndexPage(driver, url); LoginPage loginPage = indexPage.Header.ClickOnSignIn(); indexPage = loginPage.Login(testData.Email, testData.Password); PaymentOptionsHomePage paymentsPage = indexPage.Header.ClickOnPaymentOptions(); PaymentOptionsCreatePage addNewPaymentPage = paymentsPage.ClickOnAddNewCreditCard(); addNewPaymentPage.FillCardTokenForm(cardtoken); addNewPaymentPage.SelectBillingAddressOption(BillingAddressOptionsEnum.AddNew); //Fill billing address form addNewPaymentPage.SetInputAddressValue(AddressInputs.CompanyName, address.CompanyName); addNewPaymentPage.SetInputAddressValue(AddressInputs.Street, address.street); addNewPaymentPage.SetInputAddressValue(AddressInputs.Apartment, address.apartment); addNewPaymentPage.SetInputAddressValue(AddressInputs.City, address.city); addNewPaymentPage.SetInputAddressValue(AddressInputs.State, address.state); addNewPaymentPage.SetInputAddressValue(AddressInputs.Postal, address.postal); bool makeDefaultCheckboxExist = addNewPaymentPage.ElementOnPageIsPresent(AddPaymentElements.DefaultCheckbox); Assert.IsTrue(makeDefaultCheckboxExist, "Default checkbox does not exist"); addNewPaymentPage.ClickOnSubmit(); addNewPaymentPage.IsAppBusy(); paymentsPage = addNewPaymentPage.CloseModal(ModalsEnum.Information); Thread.Sleep(1000); List <string> items = paymentsPage.GetPaymentsDropdownItems(AccessLevel.User).ToList(); string payment = items.FirstOrDefault(it => it.Contains($"{cardtoken.LastFourDigits} {cardtoken.ExpirationMont}/{cardtoken.ExpirationYear}")); Assert.IsNotNull(payment, "Payment is not found"); }
public void AddPaymentOptionIntlAddress() { var testUser = TestDataFactory.CreateLoginAccount(); #region test data var testCardtoken = new PaymentOptionModel { CardNumber = "5582508629687473", ExpirationMont = "12", ExpirationYear = "24", HolderName = "Test corp", Cvv = "077", LastFourDigits = "7473" }; var testBillingAddress = new AddressModel { country = "MX", CompanyName = "SDET", state = "Estado de baja california", city = "Ensenada", street = "Calle 10", postal = "22790", apartment = "Suite 24" }; #endregion test data IndexPage indexPage = new IndexPage(driver, url); LoginPage loginPage = indexPage.Header.ClickOnSignIn(); indexPage = loginPage.Login(testUser.Email, testUser.Password); PaymentOptionsHomePage paymentsHomePage = indexPage.Header.ClickOnPaymentOptions(); PaymentOptionsCreatePage addPaymentPage = paymentsHomePage.ClickOnAddNewCreditCard(); addPaymentPage.FillCardTokenForm(testCardtoken); addPaymentPage.SelectBillingAddressOption(BillingAddressOptionsEnum.AddNew); addPaymentPage.SetInputAddressValue(AddressInputs.Country, testBillingAddress.country); addPaymentPage.SetInputAddressValue(AddressInputs.CompanyName, testBillingAddress.CompanyName); addPaymentPage.SetInputAddressValue(AddressInputs.Street, testBillingAddress.street); addPaymentPage.SetInputAddressValue(AddressInputs.Apartment, testBillingAddress.apartment); addPaymentPage.SetInputAddressValue(AddressInputs.City, testBillingAddress.city); addPaymentPage.SetInputAddressValue(AddressInputs.State, testBillingAddress.state); addPaymentPage.SetInputAddressValue(AddressInputs.Postal, testBillingAddress.postal); addPaymentPage.ClickOnSubmit(); addPaymentPage.IsAppBusy(); paymentsHomePage = addPaymentPage.CloseModal(ModalsEnum.Information); Thread.Sleep(500); List <string> items = paymentsHomePage.GetPaymentsDropdownItems(AccessLevel.User).ToList(); string expectedResult = $"{testCardtoken.LastFourDigits} {testCardtoken.ExpirationMont}/{testCardtoken.ExpirationYear}"; string payment = items.FirstOrDefault(option => option.Contains(expectedResult)); Assert.IsNotNull(payment, "Payment is not found"); }
public void EditInternationalAddress() { var testUser = TestDataFactory.CreateLoginAccount(); AddressModel testBillingAddress = new AddressModel { country = "MX", CompanyName = "SDET", state = "CO", city = "test city", street = "elm street", postal = "22770", apartment = "Suite s4" }; PaymentOptionModel testCardtoken = new PaymentOptionModel { LastFourDigits = "1111", Cvv = "077", ExpirationMont = "12", ExpirationYear = "26", HolderName = "pika", CardNumber = "4111111111111111" }; AddressModel expectedBillingAddress = new AddressModel { country = "MX", CompanyName = "SDET", state = "Estado de baja california", city = "Ensenada", street = "Calle 3", postal = "22790", apartment = "Suite 24" }; string currentPaymentData = $"{testCardtoken.LastFourDigits} {testCardtoken.ExpirationMont}/{testCardtoken.ExpirationYear}"; AddressModel actualBillingAddressValues = new AddressModel(); IndexPage indexPage = new IndexPage(driver, url); LoginPage loginPage = indexPage.Header.ClickOnSignIn(); indexPage = loginPage.Login(testUser.Email, testUser.Password); PaymentOptionsHomePage paymentsHomePage = indexPage.Header.ClickOnPaymentOptions(); //Add a new credit card PaymentOptionsCreatePage addPaymentPage = paymentsHomePage.ClickOnAddNewCreditCard(); addPaymentPage.FillCardTokenForm(testCardtoken); addPaymentPage.SelectBillingAddressOption(BillingAddressOptionsEnum.AddNew); addPaymentPage.SetInputAddressValue(AddressInputs.Country, testBillingAddress.country); addPaymentPage.SetInputAddressValue(AddressInputs.CompanyName, testBillingAddress.CompanyName); addPaymentPage.SetInputAddressValue(AddressInputs.Street, testBillingAddress.street); addPaymentPage.SetInputAddressValue(AddressInputs.Apartment, testBillingAddress.apartment); addPaymentPage.SetInputAddressValue(AddressInputs.City, testBillingAddress.city); addPaymentPage.SetInputAddressValue(AddressInputs.State, testBillingAddress.state); addPaymentPage.SetInputAddressValue(AddressInputs.Postal, testBillingAddress.postal); addPaymentPage.ClickOnSubmit(); addPaymentPage.IsAppBusy(); paymentsHomePage = addPaymentPage.CloseModal(ModalsEnum.Information); Thread.Sleep(1000); //Begin testing here paymentsHomePage.ClickOnPaymentOption(AccessLevel.User, currentPaymentData); PaymentOptionsEditPage editPaymentPage = paymentsHomePage.ContentModal.ClickOnEdit(); editPaymentPage.IsAppBusy(); editPaymentPage.ClickOnBillingAddressOption(BillingAddressOptions.NewOne); editPaymentPage.SetInputAddressValue(AddressInputs.Country, expectedBillingAddress.country); editPaymentPage.SetInputAddressValue(AddressInputs.CompanyName, expectedBillingAddress.CompanyName); editPaymentPage.SetInputAddressValue(AddressInputs.Street, expectedBillingAddress.street); editPaymentPage.SetInputAddressValue(AddressInputs.Apartment, expectedBillingAddress.apartment); editPaymentPage.SetInputAddressValue(AddressInputs.City, expectedBillingAddress.city); editPaymentPage.SetInputAddressValue(AddressInputs.State, expectedBillingAddress.state); editPaymentPage.SetInputAddressValue(AddressInputs.Postal, expectedBillingAddress.postal); editPaymentPage.ClickOnSubmit(); editPaymentPage.IsAppBusy(); paymentsHomePage = editPaymentPage.CloseModal(ModalsEnum.Information); Thread.Sleep(1000); //make sure the update has done paymentsHomePage.ClickOnPaymentOption(AccessLevel.User, currentPaymentData); editPaymentPage = paymentsHomePage.ContentModal.ClickOnEdit(); editPaymentPage.IsAppBusy(); actualBillingAddressValues.country = editPaymentPage.GetBillingAddressInputValue(AddressInputs.Country); actualBillingAddressValues.CompanyName = editPaymentPage.GetBillingAddressInputValue(AddressInputs.CompanyName); actualBillingAddressValues.street = editPaymentPage.GetBillingAddressInputValue(AddressInputs.Street); actualBillingAddressValues.apartment = editPaymentPage.GetBillingAddressInputValue(AddressInputs.Apartment); actualBillingAddressValues.city = editPaymentPage.GetBillingAddressInputValue(AddressInputs.City); actualBillingAddressValues.postal = editPaymentPage.GetBillingAddressInputValue(AddressInputs.Postal); actualBillingAddressValues.state = editPaymentPage.GetBillingAddressInputValue(AddressInputs.State); paymentsHomePage = editPaymentPage.ClickOnCancel(); Assert.IsTrue(expectedBillingAddress.CompanyName == actualBillingAddressValues.CompanyName, $"Expected: '{expectedBillingAddress.CompanyName}' Got: '{actualBillingAddressValues.CompanyName}'"); Assert.IsTrue(actualBillingAddressValues.country.Contains(expectedBillingAddress.country), $"Expected: '{expectedBillingAddress.country}' Got: '{actualBillingAddressValues.country}'"); Assert.IsTrue(expectedBillingAddress.street == actualBillingAddressValues.street, $"Expected: '{expectedBillingAddress.street}' Got: '{actualBillingAddressValues.street}'"); Assert.IsTrue(expectedBillingAddress.apartment == actualBillingAddressValues.apartment, $"Expected: '{expectedBillingAddress.apartment}' Got: '{actualBillingAddressValues.apartment}'"); Assert.IsTrue(expectedBillingAddress.city == actualBillingAddressValues.city, $"Expected: '{expectedBillingAddress.city}' Got: '{actualBillingAddressValues.city}'"); Assert.IsTrue(expectedBillingAddress.postal == actualBillingAddressValues.postal, $"Expected: '{expectedBillingAddress.postal}' Got: '{actualBillingAddressValues.postal}'"); Assert.IsTrue(expectedBillingAddress.state == actualBillingAddressValues.state, $"Expected: '{expectedBillingAddress.state}' Got: '{actualBillingAddressValues.state}'"); }
public void EditPaymentMakeDefault() { var testUser = TestDataFactory.CreateLoginAccount(); PaymentOptionModel testCardtoken = new PaymentOptionModel { LastFourDigits = "1111", Cvv = "077", ExpirationMont = "12", ExpirationYear = "26", HolderName = "pika", CardNumber = "4111111111111111" }; AddressModel testBillingAddress = new AddressModel { country = "MX", CompanyName = "SDET", state = "Estado de baja california", city = "Ensenada", street = "Calle 3", postal = "22790", apartment = "Suite 24" }; string selectPayment = $"{testCardtoken.LastFourDigits} {testCardtoken.ExpirationMont}/{testCardtoken.ExpirationYear}"; IndexPage indexPage = new IndexPage(driver, url); LoginPage loginPage = indexPage.Header.ClickOnSignIn(); loginPage.Login(testUser.Email, testUser.Password); PaymentOptionsHomePage paymentsPage = indexPage.Header.ClickOnPaymentOptions(); PaymentOptionsCreatePage addPaymentPage = paymentsPage.ClickOnAddNewCreditCard(); addPaymentPage.FillCardTokenForm(testCardtoken); addPaymentPage.SelectBillingAddressOption(BillingAddressOptionsEnum.AddNew); addPaymentPage.SetInputAddressValue(AddressInputs.Country, testBillingAddress.country); addPaymentPage.SetInputAddressValue(AddressInputs.CompanyName, testBillingAddress.CompanyName); addPaymentPage.SetInputAddressValue(AddressInputs.Street, testBillingAddress.street); addPaymentPage.SetInputAddressValue(AddressInputs.Apartment, testBillingAddress.apartment); addPaymentPage.SetInputAddressValue(AddressInputs.City, testBillingAddress.city); addPaymentPage.SetInputAddressValue(AddressInputs.State, testBillingAddress.state); addPaymentPage.SetInputAddressValue(AddressInputs.Postal, testBillingAddress.postal); addPaymentPage.ClickOnSubmit(); addPaymentPage.IsAppBusy(); paymentsPage = addPaymentPage.CloseModal(ModalsEnum.Information); //begin the test paymentsPage.ClickOnPaymentOption(AccessLevel.User, selectPayment); PaymentOptionsEditPage editPaymentsPage = paymentsPage.ContentModal.ClickOnEdit(); bool makeDefaultCheckboxExist = editPaymentsPage.ElementOnPageIsPresent(AddPaymentElements.DefaultCheckbox); Assert.IsTrue(makeDefaultCheckboxExist, "Default checkbox does not exist"); editPaymentsPage.ClickOnMakeDefault(); bool isSubmitEnabled = editPaymentsPage.IsSubmitButtonEnabled(); Assert.IsTrue(isSubmitEnabled, "The form cannot be submited"); editPaymentsPage.ClickOnSubmit(); editPaymentsPage.IsAppBusy(); paymentsPage = editPaymentsPage.CloseModal(ModalsEnum.Information); List <string> items = paymentsPage.GetPaymentsDropdownItems(AccessLevel.User).ToList(); string payment = items.FirstOrDefault(it => it.Contains( $"{testCardtoken.LastFourDigits} {testCardtoken.ExpirationMont}/{testCardtoken.ExpirationYear}")); bool defaultLabelInDropdownItem = paymentsPage.IsDefaultLabelPresentOnDropdownItem(AccessLevel.User); string actualDefaultPaymentData = paymentsPage.GetDefaultTilePaymentData(AccessLevel.User); Assert.IsTrue(defaultLabelInDropdownItem, "Default label does not exist"); Assert.IsTrue(actualDefaultPaymentData.Contains(testCardtoken.LastFourDigits), "Card last four digits cannot be found"); Assert.IsTrue(actualDefaultPaymentData.Contains($"{testCardtoken.ExpirationMont}/{testCardtoken.ExpirationYear}"), "Expiration date does not correspond"); Assert.IsNotNull(payment, "Payment is not found"); }
//Test Case on test rail -> C1134, C1135, C1179 //[TestMethod] //[TestCategory(TestCategoriesConstants.Regression)] //[TestCategory(TestCategoriesConstants.Smoke)] public void AddCreditCardUsingPrevStoredAddress() { var testData = TestDataFactory.CreateLoginAccount(); AddressModel testAddress = new AddressModel { country = "US", street = "street test", CompanyName = "address company name", state = "CO", city = "boulder", postal = "52809" }; PaymentOptionModel testCardtoken = new PaymentOptionModel { CardNumber = "4111111111111111", ExpirationMont = "12", ExpirationYear = "22", HolderName = "Test holder", Cvv = "077", LastFourDigits = "1111" }; IndexPage indexPage = new IndexPage(driver, url); LoginPage loginPage = indexPage.Header.ClickOnSignIn(); indexPage = loginPage.Login(testData.Email, testData.Password); //Manually add an address AddressesHomePage addressesPage = indexPage.Header.ClickOnAddresses(); AddAddressPage createAddressPage = addressesPage.ClickOnAddNewAddress(); //Fill address form createAddressPage.SetInputValue(AddressInputs.CompanyName, testAddress.CompanyName); createAddressPage.SetInputValue(AddressInputs.Street, testAddress.street); createAddressPage.SetInputValue(AddressInputs.Apartment, testAddress.apartment); createAddressPage.SetInputValue(AddressInputs.City, testAddress.city); createAddressPage.SetInputValue(AddressInputs.State, testAddress.state); createAddressPage.SetInputValue(AddressInputs.Postal, testAddress.postal); addressesPage = createAddressPage.ClickOnSubmit(); addressesPage.IsAppBusy(); //TODO: check the logic on address create process addressesPage.IsAppBusy(); addressesPage.InformationModal.ClickOnClose(); //test begins here PaymentOptionsHomePage paymentsPage = addressesPage.Header.ClickOnPaymentOptions(); PaymentOptionsCreatePage addNewPaymentPage = paymentsPage.ClickOnAddNewCreditCard(); string storedAddress = string.IsNullOrEmpty(testAddress.apartment) ? $"{testAddress.street}, {testAddress.city} {testAddress.country} {testAddress.postal}" : $"{testAddress.street}, {testAddress.apartment}, {testAddress.city} {testAddress.country} {testAddress.postal}"; addNewPaymentPage.FillCardTokenForm(testCardtoken); addNewPaymentPage.SelectBillingAddressOption(BillingAddressOptionsEnum.Stored); addNewPaymentPage.SelectPreviouslyStoreAddress(storedAddress); addNewPaymentPage.ClickOnSubmit(); addNewPaymentPage.IsAppBusy(); paymentsPage = addNewPaymentPage.CloseModal(ModalsEnum.Information); addNewPaymentPage.IsAppBusy(); Thread.Sleep(500); List <string> items = paymentsPage.GetPaymentsDropdownItems(AccessLevel.User).ToList(); string payment = items.FirstOrDefault(it => it.Contains($"{testCardtoken.LastFourDigits} {testCardtoken.ExpirationMont}/{testCardtoken.ExpirationYear}")); Assert.IsNotNull(payment, "Payment option is not found"); }
public void SetUserLevelPaymentAsDefault() { var testUser = TestDataFactory.CreateLoginAccount(); PaymentOptionModel testCardtoken = new PaymentOptionModel { CardNumber = "5582508629687473", ExpirationMont = "12", ExpirationYear = "24", HolderName = "Test corp", Cvv = "077", LastFourDigits = "7473" }; AddressModel testAddress = new AddressModel { country = "US", CompanyName = "QA Softtek Automation", state = "CO", city = "Denver", street = "Elm street", postal = "22780", apartment = "24" }; //needs to be formated like that string stringTestPayment = $"{testCardtoken.LastFourDigits} {testCardtoken.ExpirationMont}/{testCardtoken.ExpirationYear}" + $@" {testCardtoken.HolderName}"; IndexPage indexPage = new IndexPage(driver, url); LoginPage loginPage = indexPage.Header.ClickOnSignIn(); indexPage = loginPage.Login(testUser.Email, testUser.Password); PaymentOptionsHomePage viewPaymentsPage = indexPage.Header.ClickOnPaymentOptions(); //add payment process PaymentOptionsCreatePage addNewPaymentPage = viewPaymentsPage.ClickOnAddNewCreditCard(); addNewPaymentPage.FillCardTokenForm(testCardtoken); addNewPaymentPage.SelectBillingAddressOption(BillingAddressOptionsEnum.AddNew); addNewPaymentPage.SetInputAddressValue(AddressInputs.CompanyName, testAddress.CompanyName); addNewPaymentPage.SetInputAddressValue(AddressInputs.Street, testAddress.street); addNewPaymentPage.SetInputAddressValue(AddressInputs.Apartment, testAddress.apartment); addNewPaymentPage.SetInputAddressValue(AddressInputs.City, testAddress.city); addNewPaymentPage.SetInputAddressValue(AddressInputs.State, testAddress.state); addNewPaymentPage.SetInputAddressValue(AddressInputs.Postal, testAddress.postal); addNewPaymentPage.ClickOnSubmit(); addNewPaymentPage.IsAppBusy(); viewPaymentsPage = addNewPaymentPage.CloseModal(ModalsEnum.Information); Thread.Sleep(1000); //validations begins here viewPaymentsPage.ClickOnPaymentOption(AccessLevel.User, stringTestPayment); viewPaymentsPage.ContentModal.ClickOnMakeDefault(); viewPaymentsPage.IsAppBusy(); viewPaymentsPage.InfoModal.ClickOnClose(); bool defaultLabelInDropdownItem = viewPaymentsPage.IsDefaultLabelPresentOnDropdownItem(AccessLevel.User); List <string> paymentsInDropdown = viewPaymentsPage.GetPaymentsDropdownItems(AccessLevel.User).ToList(); string firstPayment = paymentsInDropdown.ElementAt(0); string actualDefaultPaymentData = viewPaymentsPage.GetDefaultTilePaymentData(AccessLevel.User); Assert.IsTrue(defaultLabelInDropdownItem, "default fayment has not a label"); //sort order check Assert.IsTrue(firstPayment.Contains(stringTestPayment), "first payment is not the default one"); Assert.IsTrue(actualDefaultPaymentData.Contains(testCardtoken.LastFourDigits)); Assert.IsTrue(actualDefaultPaymentData.Contains($"{testCardtoken.ExpirationMont}/{testCardtoken.ExpirationYear}")); bool accountTileIsPresent = viewPaymentsPage.ElementExistOnPage(AccessLevel.Account, ViewPaymentsElements.DefaultTile); Assert.IsFalse(accountTileIsPresent, "Account default tile should not exist here o:"); }