Exemple #1
0
        protected PayexCardFramePage GoToPayexCardPaymentFrame(Product[] products, Checkout.Option checkout = Checkout.Option.Anonymous)
        {
            switch (checkout)
            {
            case Checkout.Option.LocalPaymentMenu:
                return(GoToLocalPaymentPage(products)
                       .CreditCard.IsVisible.WaitTo.BeTrue()
                       .CreditCard.Click()
                       .PaymentFrame.SwitchTo <PayexCardFramePage>());

            case Checkout.Option.Anonymous:
            case Checkout.Option.Standard:
            default:

                var paymentframePage = GoToPaymentFramePage(products, checkout)
                                       .PaymentMethods[x => x.Name == PaymentMethods.Card].IsVisible.WaitTo.BeTrue()
                                       .PaymentMethods[x => x.Name == PaymentMethods.Card].Click()
                                       .PaymentMethods[x => x.Name == PaymentMethods.Card].PaymentFrame.SwitchTo <PayexCardFramePage>();
                if (paymentframePage.CardTypeSelector.Exists())
                {
                    paymentframePage.CardTypeSelector.Check();
                }
                return(paymentframePage);
            }
        }
Exemple #2
0
        protected OrdersPage GoToOrdersPage(Product[] products, PayexInfo payexInfo, Checkout.Option checkout = Checkout.Option.Anonymous)
        {
            ThankYouPage page = null;

            switch (payexInfo)
            {
            case PayexCardInfo cardInfo:
                page = PayWithPayexCard(products, cardInfo, checkout);
                break;

            case PayexSwishInfo swishInfo:
                page = PayWithPayexSwish(products, swishInfo, checkout);
                break;

            case PayexInvoiceInfo invoiceInfo:
                page = PayWithPayexInvoice(products, invoiceInfo, checkout);
                break;

            case PayexTrustlyInfo trustlyInfo:
                page = PayWithPayexTrustly(products, trustlyInfo, checkout);
                break;
            }

            return(page?
                   .ThankYou.IsVisible.WaitTo.Within(120).BeTrue()
                   .Header.Orders.ClickAndGo());
        }
Exemple #3
0
        protected ThankYouPage GoToThankYouPage(Product[] products, Checkout.Option checkout = Checkout.Option.Identification, Entity.Option entity = Entity.Option.Private, PaymentMethods.Option paymentMethod = PaymentMethods.Option.Card)
        {
            var page = GoToSveaPaymentFrame(products);

            try
            {
                page.IdentifyEntity(checkout, entity);
            }
            catch (StaleElementReferenceException)
            {
                page.RefreshPage()
                .SwitchToFrame <SveaPaymentFramePage>(By.Id("svea-checkout-iframe"))
                .IdentifyEntity(checkout, entity);
            }

            page.Pay(checkout, entity, paymentMethod, _amount);

            try
            {
                return(page
                       .PageUrl.Should.Within(TimeSpan.FromSeconds(60)).Contain("thankyou")
                       .SwitchToRoot <ThankYouPage>()
                       .ThankYou.IsVisible.WaitTo.BeTrue());
            }
            catch (StaleElementReferenceException)
            {
                return(Go.To <ThankYouPage>());
            }
        }
Exemple #4
0
        public static SveaPaymentFramePage Pay(this SveaPaymentFramePage page, Checkout.Option checkout = Checkout.Option.Identification, Entity.Option entity = Entity.Option.Private, PaymentMethods.Option paymentMethod = PaymentMethods.Option.Card, string amount = null)
        {
            page
            .PaymentMethods.TotalAmount.IsVisible.WaitTo.BeTrue()
            .PaymentMethods.TotalAmount.Should.ContainAmount(amount);

            if (entity == Entity.Option.Company && checkout == Checkout.Option.Identification)
            {
                page.PaymentMethods.Reference.Set(TestDataService.Reference);
            }

            switch (paymentMethod)
            {
            default:
            case PaymentMethods.Option.Card:
                return(page.PayWithCard());

            case PaymentMethods.Option.DirektBank:
                return(page.PayWithDirektBank());

            case PaymentMethods.Option.Invoice:
                return(page.PayWithInvoice());

            case PaymentMethods.Option.Trustly:
                return(page.PayWithTrustly(checkout));

            case PaymentMethods.Option.PaymentPlan:
                return(page.PayWithPaymentPlan());

            case PaymentMethods.Option.AccountCredit:
                return(page.PayWithAccount());

            case PaymentMethods.Option.BlackFriday:
                return(page.PayWithBlackFriday());

            case PaymentMethods.Option.Swish:
                return(page.PayWithSwish());
            }
        }
Exemple #5
0
        public static SveaPaymentFramePage IdentifyEntity(this SveaPaymentFramePage page, Checkout.Option checkout = Checkout.Option.Identification, Entity.Option entity = Entity.Option.Private)
        {
            page.Entity.IsVisible.WaitTo.BeTrue();

            switch (entity)
            {
            default:
            case Entity.Option.Private:

                switch (checkout)
                {
                default:
                case Checkout.Option.Identification:
                    return(page.ProceedWithPrivateIdentification().PaymentMethods.IsVisible.WaitTo.BeTrue());

                case Checkout.Option.Anonymous:
                    return(page.ProceedWithPrivateAnonymous().PaymentMethods.IsVisible.WaitTo.BeTrue());
                }

            case Entity.Option.Company:

                switch (checkout)
                {
                default:
                case Checkout.Option.Identification:
                    return(page.ProceedWithCompanyIdentification().PaymentMethods.IsVisible.WaitTo.BeTrue());

                case Checkout.Option.Anonymous:
                    return(page.ProceedWithCompanyAnonymous().PaymentMethods.IsVisible.WaitTo.BeTrue());
                }
            }
        }
Exemple #6
0
 protected PayexInvoiceFramePage GoToPayexInvoicePaymentFrame(Product[] products, Checkout.Option checkout = Checkout.Option.Anonymous)
 {
     return(checkout switch
     {
         Checkout.Option.LocalPaymentMenu => GoToLocalPaymentPage(products)
         .Invoice.IsVisible.WaitTo.BeTrue()
         .Invoice.Click()
         .PaymentFrame.SwitchTo <PayexInvoiceFramePage>(),
         _ => GoToPaymentFramePage(products, checkout)
         .PaymentMethods[x => x.Name == PaymentMethods.Invoice].IsVisible.WaitTo.BeTrue()
         .PaymentMethods[x => x.Name == PaymentMethods.Invoice].Click()
         .PaymentMethods[x => x.Name == PaymentMethods.Invoice].PaymentFrame.SwitchTo <PayexInvoiceFramePage>()
     });
Exemple #7
0
 protected OrdersPage GoToOrdersPage(Product[] products, Checkout.Option checkout = Checkout.Option.Identification, Entity.Option entity = Entity.Option.Private, PaymentMethods.Option paymentMethod = PaymentMethods.Option.Card)
 {
     return(GoToThankYouPage(products, checkout, entity, paymentMethod)
            .RefreshPageUntil(x => x.Header.Orders.IsVisible.Value == true, timeout: 25, retryInterval: 3)
            .Header.Orders.ClickAndGo());
 }
Exemple #8
0
 public static SveaPaymentFramePage PayWithTrustly(this SveaPaymentFramePage page, Checkout.Option checkout)
 {
     return(page
            .PaymentMethods.Trustly.IsVisible.WaitTo.BeTrue()
            .PaymentMethods.Trustly.Click()
            .Submit.ClickAndGo <TrustlyPaymentPage>()
            .Banks[0].IsVisible.WaitTo.BeTrue()
            .Banks[0].Click()
            .Next.Click()
            .Do(x => {
         if (checkout == Checkout.Option.Anonymous)
         {
             x.PersonalNumber.Set(TestDataService.PersonalNumber);
         }
     })
            .SecurityCodeOption.Click()
            .Next.Click()
            .MessageCode.StoreValue(out string code)
            .Code.Set(code)
            .Next.Click()
            .AccountOptions.IsVisible.WaitTo.Within(60).BeTrue()
            .Next.Click()
            .MessageCode.StoreValue(out code)
            .Code.Set(code)
            .Next.Click()
            .SwitchToRoot <SveaPaymentFramePage>());
 }