示例#1
0
 public void ValidateClientPurchaseInfo(ClientPurchaseInfo clientPurchaseInfo)
 {
     foreach (IOrderPurchaseStrategy currentStrategy in this.orderpurchaseStrategies)
     {
         currentStrategy.ValidateClientPurchaseInfo(clientPurchaseInfo);
     }
 }
示例#2
0
 public void ValidateClientPurchaseInfo(ClientPurchaseInfo clientPurchaseInfo)
 {
     if (clientPurchaseInfo.GiftWrapping.Equals(GiftWrappingStyles.None))
     {
         throw new ArgumentException("The gift wrapping style cannot be set to None if the GiftOrderPurchaseStrategy should be executed.");
     }
 }
示例#3
0
 public void ValidateClientPurchaseInfo(ClientPurchaseInfo clientPurchaseInfo)
 {
     if (!clientPurchaseInfo.ShippingInfo.Country.Equals("United States"))
     {
         throw new ArgumentException("If the NoTaxesOrderPurchaseStrategy is used, the country should be set to United States because otherwise no sales tax is going to be applied.");
     }
 }
        public void Purchase_SeleniumTestingToolsCookbook()
        {
            var itemUrl            = "/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743";
            var itemPrice          = "40.49";
            var clientPurchaseInfo = new ClientPurchaseInfo(
                new ClientAddressInfo()
            {
                FullName = "John Smith",
                Country  = "United States",
                Address1 = "950 Avenue of the Americas",
                State    = "New York",
                City     = "New York City",
                Zip      = "10001-2121",
                Phone    = "00164644885569"
            })
            {
                CouponCode = "99PERDIS"
            };
            var clientLoginInfo = new ClientLoginInfo()
            {
                Email    = "*****@*****.**",
                Password = "******"
            };

            Container.RegisterInstance <IPurchasePromotionalCodeStrategy>(
                new UiPurchasePromotionalCodeStrategy(Container.Resolve <PlaceOrderPage>(), 40.49));
            var purchaseContext = Container.Resolve <PurchaseContext>();

            purchaseContext.PurchaseItem(itemUrl, itemPrice, clientLoginInfo, clientPurchaseInfo);
        }
        public void Purchase_SeleniumTestingToolsCookbook()
        {
            var itemUrl            = "/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743";
            var itemPrice          = "40.49";
            var clientPurchaseInfo = new ClientPurchaseInfo(
                new ClientAddressInfo()
            {
                FullName = "John Smith",
                Country  = "United States",
                Address1 = "950 Avenue of the Americas",
                State    = "New York",
                City     = "New York City",
                Zip      = "10001-2121",
                Phone    = "00164644885569"
            })
            {
                GiftWrapping = GiftWrappingStyles.None
            };
            var clientLoginInfo = new ClientLoginInfo()
            {
                Email    = "*****@*****.**",
                Password = "******"
            };

            new PurchaseContext(new SalesTaxOrderValidationStrategy()).PurchaseItem(itemUrl, itemPrice, clientLoginInfo, clientPurchaseInfo);
        }
示例#6
0
        public void TestMethod1()
        {
            var itemUrl            = "/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743";
            var itemPrice          = "44.99";
            var clientPurchaseInfo = new ClientPurchaseInfo(
                new ClientAddressInfo()
            {
                FullName = "John Smith",
                Country  = "United States",
                Address1 = "950 Avenue of the Americas",
                State    = "New York",
                City     = "New York City",
                Zip      = "10001-2121",
                Phone    = "00164644885569"
            })
            {
                GiftWrapping = GiftWrappingStyles.None
            };
            var clientLoginInfo = new ClientLoginInfo()
            {
                Email    = "*****@*****.**",
                Password = "******"
            };
            //new PurchaseContext(new SalesTaxOrderValidationStrategy()).PurchaseItem(itemUrl, itemPrice, clientLoginInfo, clientPurchaseInfo);
            var salesTaxStrategy = new PurchaseContext(new SalesTaxOrderValidationStrategy());

            salesTaxStrategy.PurchaseItem(itemUrl, itemPrice, clientLoginInfo, clientPurchaseInfo);

            Thread.Sleep(5000);
        }
示例#7
0
 public void ValidateOrderSummary(string itemPrice, ClientPurchaseInfo clientPurchaseInfo)
 {
     foreach (var currentStrategy in _orderpurchaseStrategies)
     {
         currentStrategy.AssertOrderSummary(itemPrice, clientPurchaseInfo);
     }
 }
 public ShippingAddressPageFillShippingBehaviour(
     ClientPurchaseInfo clientPurchaseInfo)
 {
     _shippingAddressPage =
         UnityContainerFactory.GetContainer().Resolve <ShippingAddressPage>();
     _clientPurchaseInfo = clientPurchaseInfo;
 }
示例#9
0
 public void FillBillingInfo(ClientPurchaseInfo clientInfo)
 {
     if (clientInfo.BillingInfo != null)
     {
         FillAddressInfoInternal(clientInfo);
     }
 }
示例#10
0
 public void ValidateClientPurchaseInfo(ClientPurchaseInfo clientPurchaseInfo)
 {
     foreach (var currentStrategy in _orderpurchaseStrategies)
     {
         currentStrategy.ValidateClientPurchaseInfo(clientPurchaseInfo);
     }
 }
        public void Purchase_SimpleBehaviourEngine()
        {
            var itemUrl            = "/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743";
            var itemPrice          = "40.49";
            var clientPurchaseInfo = new ClientPurchaseInfo(
                new ClientAddressInfo()
            {
                FullName = "John Smith",
                Country  = "United States",
                Address1 = "950 Avenue of the Americas",
                State    = "New York",
                City     = "New York City",
                Zip      = "10001-2121",
                Phone    = "00164644885569"
            })
            {
                CouponCode = "99PERDIS"
            };
            var clientLoginInfo = new ClientLoginInfo()
            {
                Email    = "*****@*****.**",
                Password = "******"
            };

            Behaviours.Core.BehaviourExecutor.Execute(
                new ItemPageNavigationBehaviour(itemUrl),
                new ItemPageBuyBehaviour(),
                new PreviewShoppingCartPageProceedBehaviour(),
                new SignInPageLoginBehaviour(clientLoginInfo),
                new ShippingAddressPageFillShippingBehaviour(clientPurchaseInfo),
                new ShippingAddressPageFillDifferentBillingBehaviour(clientPurchaseInfo),
                new ShippingAddressPageContinueBehaviour(),
                new ShippingPaymentPageContinueBehaviour(),
                new PlaceOrderPageAssertFinalAmountsBehaviour(itemPrice));
        }
        public void Purchase_ShoppingCartFacade()
        {
            var itemUrl            = "/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743";
            var itemPrice          = "40.49";
            var clientPurchaseInfo = new ClientPurchaseInfo(
                new ClientAddressInfo()
            {
                FullName = "John Smith",
                Country  = "United States",
                Address1 = "950 Avenue of the Americas",
                State    = "New York",
                City     = "New York City",
                Zip      = "10001-2121",
                Phone    = "00164644885569"
            })
            {
                CouponCode = "99PERDIS"
            };
            var clientLoginInfo = new ClientLoginInfo()
            {
                Email    = "*****@*****.**",
                Password = "******"
            };
            var shoppingCart = Container.Resolve <ShoppingCart>();

            shoppingCart.PurchaseItem(itemUrl, itemPrice, clientLoginInfo, clientPurchaseInfo);
        }
示例#13
0
        public void Purchase_SeleniumTestingToolsCookbook()
        {
            var itemUrl            = "/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743";
            var itemPrice          = "40.49";
            var clientPurchaseInfo = new ClientPurchaseInfo(
                new ClientAddressInfo()
            {
                FullName = "John Smith",
                Country  = "United States",
                Address1 = "950 Avenue of the Americas",
                State    = "New York",
                City     = "New York City",
                Zip      = "10001-2121",
                Phone    = "00164644885569"
            })
            {
                CouponCode = "99PERDIS"
            };
            var clientLoginInfo = new ClientLoginInfo()
            {
                Email    = "*****@*****.**",
                Password = "******"
            };

            var purchaseContext = new PurchaseContext(NullPurchasePromotionalCodeStrategy.Null,
                                                      new ItemPage(Driver.Browser),
                                                      new PreviewShoppingCartPage(Driver.Browser),
                                                      new SignInPage(Driver.Browser),
                                                      new ShippingAddressPage(Driver.Browser),
                                                      new ShippingPaymentPage(Driver.Browser),
                                                      new PlaceOrderPage(Driver.Browser));

            purchaseContext.PurchaseItem(itemUrl, itemPrice, clientLoginInfo, clientPurchaseInfo);
        }
示例#14
0
 public void ClickDifferentBillingCheckBox(ClientPurchaseInfo clientInfo)
 {
     if (clientInfo.BillingInfo != null)
     {
         Map.DifferemtFromBillingCheckbox.Click();
     }
 }
        public void ValidateOrderSummary(string itemsPrice, ClientPurchaseInfo clientPurchaseInfo)
        {
            var currentCountry   = (Countries)Enum.Parse(typeof(Countries), clientPurchaseInfo.BillingInfo.Country);
            var currentItemPrice = decimal.Parse(itemsPrice);
            var vatTax           = VatTaxCalculationService.Calculate(currentItemPrice, currentCountry);

            PlaceOrderPage.Instance.Validate().EstimatedTaxPrice(vatTax.ToString());
        }
示例#16
0
        public void ValidateOrderSummary(string itemsPrice, ClientPurchaseInfo clientPurchaseInfo)
        {
            States  currentState     = (States)Enum.Parse(typeof(States), clientPurchaseInfo.ShippingInfo.State);
            decimal currentItemPrice = decimal.Parse(itemsPrice);
            decimal salesTax         = this.SalesTaxCalculationService.Calculate(currentItemPrice, currentState, clientPurchaseInfo.ShippingInfo.Zip);

            PlaceOrderPage.Instance.Validate().EstimatedTaxPrice(salesTax.ToString());
        }
示例#17
0
 public void ValidateClientPurchaseInfo(ClientPurchaseInfo clientPurchaseInfo)
 {
     if (clientPurchaseInfo.ShippingInfo.Country.Equals(Countries.UnitedStates))
     {
         throw new ArgumentException("If the NoTaxesOrderPurchaseStrategy is used, the country cannot be set to United States because a sales tax is going to be applied.");
     }
     // Add another validation for the EU contries because for them a VAT Tax is going to be applied if not VAT ID is set.
 }
        public decimal CalculateBeforeTaxPrice(decimal itemsPrice, ClientPurchaseInfo clientPurchaseInfo)
        {
            var beforeTaxPrice = default(decimal);
            var shippingCosts  = CalculateShippingPrice(clientPurchaseInfo);

            beforeTaxPrice = itemsPrice + shippingCosts;

            return(beforeTaxPrice);
        }
        public decimal CalculateTotalPrice(decimal itemsPrice, decimal estimatedTax, ClientPurchaseInfo clientPurchaseInfo)
        {
            var totalPrice    = default(decimal);
            var shippingCosts = CalculateShippingPrice(clientPurchaseInfo);

            totalPrice = itemsPrice + estimatedTax + shippingCosts;

            return(totalPrice);
        }
示例#20
0
 private void FillAddressInfoInternal(ClientPurchaseInfo clientInfo)
 {
     Map.CountryDropDown.SelectByText(clientInfo.ShippingInfo.Country);
     Map.FullNameInput.SendKeys(clientInfo.ShippingInfo.FullName);
     Map.Address1Input.SendKeys(clientInfo.ShippingInfo.Address1);
     Map.CityInput.SendKeys(clientInfo.ShippingInfo.City);
     Map.ZipInput.SendKeys(clientInfo.ShippingInfo.Zip);
     Map.PhoneInput.SendKeys(clientInfo.ShippingInfo.Phone);
     Map.ShipToThisAddress.Click();
 }
 public void FillDifferentBillingInfo(string fullName, string country, string address, string state, string city, string zip, string phone)
 {
     this.clientPurchaseInfo = new ClientPurchaseInfo(
         new ClientAddressInfo()
     {
         FullName = fullName,
         Country  = country,
         Address1 = address,
         State    = state,
         City     = city,
         Zip      = zip,
         Phone    = phone
     });
     base.Execute();
 }
示例#22
0
        public void FillDifferentBillingInfo(string fullName, string country, string address, string state, string city, string zip, string phone)
        {
            var clientPurchaseInfo = new ClientPurchaseInfo(
                new ClientAddressInfo()
            {
                FullName = fullName,
                Country  = country,
                Address1 = address,
                State    = state,
                City     = city,
                Zip      = zip,
                Phone    = phone
            });

            new ShippingAddressPageFillDifferentBillingBehaviour(clientPurchaseInfo).Execute();
        }
 public void FillShippingInfo(string fullName, string country, string address, string state, string city, string zip, string phone)
 {
     _clientPurchaseInfo = new ClientPurchaseInfo(
         new ClientAddressInfo()
     {
         FullName = fullName,
         Country  = country,
         Address1 = address,
         State    = state,
         City     = city,
         Zip      = zip,
         Phone    = phone,
     });
     _shippingAddressPage.FillShippingInfo(_clientPurchaseInfo);
     Execute();
 }
示例#24
0
        public void FillShippingInfo(string fullName, string country, string address, string state, string city, string zip, string phone)
        {
            var shippingAddressPage = UnityContainerFactory.GetContainer().Resolve <ShippingAddressPage>();
            var clientPurchaseInfo  = new ClientPurchaseInfo(
                new ClientAddressInfo()
            {
                FullName = fullName,
                Country  = country,
                Address1 = address,
                State    = state,
                City     = city,
                Zip      = zip,
                Phone    = phone
            });

            shippingAddressPage.FillShippingInfo(clientPurchaseInfo);
        }
示例#25
0
        public void FillDifferentBillingInfo(string fullName, string country, string address, string state, string city, string zip, string phone)
        {
            var shippingAddressPage = UnityContainerFactory.GetContainer().Resolve <ShippingAddressPage>();
            var shippingPaymentPage = UnityContainerFactory.GetContainer().Resolve <ShippingPaymentPage>();
            var clientPurchaseInfo  = new ClientPurchaseInfo(
                new ClientAddressInfo()
            {
                FullName = fullName,
                Country  = country,
                Address1 = address,
                State    = state,
                City     = city,
                Zip      = zip,
                Phone    = phone
            });

            shippingAddressPage.ClickDifferentBillingCheckBox(clientPurchaseInfo);
            shippingAddressPage.ClickContinueButton();
            shippingPaymentPage.ClickBottomContinueButton();
            shippingAddressPage.FillBillingInfo(clientPurchaseInfo);
        }
        public void PurchaseItem(
            string itemUrl,
            string itemPrice,
            ClientLoginInfo clientLoginInfo,
            ClientPurchaseInfo clientPurchaseInfo)
        {
            _itemPage.Navigate(itemUrl);
            _itemPage.ClickBuyNowButton();
            _previewShoppingCartPage.ClickProceedToCheckoutButton();
            _signInPage.Login(clientLoginInfo.Email, clientLoginInfo.Password);
            _shippingAddressPage.FillShippingInfo(clientPurchaseInfo);
            _shippingAddressPage.ClickDifferentBillingCheckBox(clientPurchaseInfo);
            _shippingAddressPage.ClickContinueButton();
            _shippingPaymentPage.ClickBottomContinueButton();
            _shippingAddressPage.FillBillingInfo(clientPurchaseInfo);
            _shippingAddressPage.ClickContinueButton();
            _shippingPaymentPage.ClickTopContinueButton();
            var totalPrice = double.Parse(itemPrice);

            _placeOrderPage.AssertOrderTotalPrice(totalPrice);
        }
        public void Purchase_SeleniumTestingToolsCookbook_DecoratedStrategies()
        {
            string  itemUrl      = "/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743";
            decimal itemPrice    = 40.49m;
            var     shippingInfo = new ClientAddressInfo()
            {
                FullName = "John Smith",
                Country  = "United States",
                Address1 = "950 Avenue of the Americas",
                State    = "Texas",
                City     = "Houston",
                Zip      = "77001",
                Phone    = "00164644885569"
            };
            var billingInfo = new ClientAddressInfo()
            {
                FullName = "Anton Angelov",
                Country  = "Bulgaria",
                Address1 = "950 Avenue of the Americas",
                City     = "Sofia",
                Zip      = "1672",
                Phone    = "0894464647"
            };
            ClientPurchaseInfo clientPurchaseInfo = new ClientPurchaseInfo(billingInfo, shippingInfo)
            {
                GiftWrapping = GiftWrappingStyles.Fancy
            };
            ClientLoginInfo clientLoginInfo = new ClientLoginInfo()
            {
                Email    = "*****@*****.**",
                Password = "******"
            };
            OrderPurchaseStrategy orderPurchaseStrategy = new TotalPriceOrderPurchaseStrategy(itemPrice);

            orderPurchaseStrategy = new SalesTaxOrderPurchaseStrategy(orderPurchaseStrategy, itemPrice, clientPurchaseInfo);
            orderPurchaseStrategy = new VatTaxOrderPurchaseStrategy(orderPurchaseStrategy, itemPrice, clientPurchaseInfo);

            new PurchaseContext(orderPurchaseStrategy).PurchaseItem(itemUrl, itemPrice.ToString(), clientLoginInfo, clientPurchaseInfo);
        }
示例#28
0
        public void Purchase_Decorator()
        {
            var itemUrl      = "/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743";
            var itemPrice    = 44.99m;
            var shippingInfo = new ClientAddressInfo()
            {
                FullName = "John Smith",
                Country  = "United States",
                Address1 = "7518 CAROTHERS STREET",
                State    = "Texas",
                City     = "Houston",
                Zip      = "77001",
                Phone    = "00164644885569"
            };
            var billingInfo = new ClientAddressInfo()
            {
                FullName = "Anton Angelov",
                Country  = "Bulgaria",
                Address1 = "950 Avenue of the Americas",
                City     = "Sofia",
                Zip      = "1672",
                Phone    = "0894464647"
            };
            var clientPurchaseInfo = new ClientPurchaseInfo(billingInfo, shippingInfo)
            {
                GiftWrapping = GiftWrappingStyles.Fancy
            };
            var clientLoginInfo = new ClientLoginInfo()
            {
                Email    = "*****@*****.**",
                Password = "******"
            };

            Advanced.Strategies.OrderPurchaseStrategy orderPurchaseStrategy = new Advanced.Strategies.TotalPriceOrderPurchaseStrategy(itemPrice);
            orderPurchaseStrategy = new Advanced.Strategies.SalesTaxOrderPurchaseStrategy(orderPurchaseStrategy, itemPrice, clientPurchaseInfo);
            orderPurchaseStrategy = new Advanced.Strategies.VatTaxOrderPurchaseStrategy(orderPurchaseStrategy, itemPrice, clientPurchaseInfo);

            new PurchaseContext(orderPurchaseStrategy).PurchaseItem(itemUrl, itemPrice.ToString(), clientLoginInfo, clientPurchaseInfo);
        }
示例#29
0
        public void Purchase_SeleniumTestingToolsCookbook()
        {
            string itemUrl      = "/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743";
            string itemPrice    = "40.49";
            var    shippingInfo = new ClientAddressInfo()
            {
                FullName = "John Smith",
                Country  = "United States",
                Address1 = "950 Avenue of the Americas",
                State    = "New York",
                City     = "New York City",
                Zip      = "10001-2121",
                Phone    = "00164644885569"
            };
            var billingInfo = new ClientAddressInfo()
            {
                FullName = "Anton Angelov",
                Country  = "Bulgaria",
                Address1 = "950 Avenue of the Americas",
                City     = "Sofia",
                Zip      = "1672",
                Phone    = "0894464647"
            };
            ClientPurchaseInfo clientPurchaseInfo = new ClientPurchaseInfo(billingInfo, shippingInfo)
            {
                GiftWrapping = GiftWrappingStyles.Fancy
            };
            ClientLoginInfo clientLoginInfo = new ClientLoginInfo()
            {
                Email    = "*****@*****.**",
                Password = "******"
            };

            new PurchaseContext(new SalesTaxOrderPurchaseStrategy(), new VatTaxOrderPurchaseStrategy(), new GiftOrderPurchaseStrategy())
            .PurchaseItem(itemUrl, itemPrice, clientLoginInfo, clientPurchaseInfo);
        }
 public void PurchaseItem(string itemUrl, string itemPrice, ClientLoginInfo clientLoginInfo, ClientPurchaseInfo clientPurchaseInfo)
 {
     ItemPage.Instance.Navigate(itemUrl);
     ItemPage.Instance.ClickBuyNowButton();
     PreviewShoppingCartPage.Instance.ClickProceedToCheckoutButton();
     SignInPage.Instance.Login(clientLoginInfo.Email, clientLoginInfo.Password);
     ShippingAddressPage.Instance.FillShippingInfo(clientPurchaseInfo);
     ShippingAddressPage.Instance.ClickContinueButton();
     ShippingPaymentPage.Instance.ClickBottomContinueButton();
     ShippingPaymentPage.Instance.ClickTopContinueButton();
     _orderValidationStrategy.ValidateOrderSummary(itemPrice, clientPurchaseInfo);
 }