Example #1
0
        /// <summary>
        /// Loads the component. Checks to see if the current url matches
        /// the Route and if not an exception is thrown. If the WrappedDriver
        /// is an <see cref="T:OpenQA.Selenium.Support.Events.EventFiringWebDriver" /> event listeners will be
        /// added to the <see cref="E:OpenQA.Selenium.Support.Events.EventFiringWebDriver.Navigated" /> event
        /// which will call <see cref="M:ApertureLabs.Selenium.PageObjects.PageObject.Dispose" /> on this instance.
        /// NOTE:
        /// If overriding don't forget to either call base.Load() or make sure
        /// the <see cref="P:ApertureLabs.Selenium.PageObjects.PageObject.Uri" /> and the <see cref="P:ApertureLabs.Selenium.PageObjects.PageObject.WindowHandle" /> are
        /// assigned to.
        /// </summary>
        /// <returns>
        /// A reference to this
        /// <see cref="T:OpenQA.Selenium.Support.UI.ILoadableComponent" />.
        /// </returns>
        public override ILoadableComponent Load()
        {
            base.Load();
            basePage.Load();
            Orders.Load();
            StartDateComponent.Load();
            EndDateComponent.Load();
            OrderStatusesComponent.Load();
            PaymentStatusesComponent.Load();
            ShippingStatusesComponent.Load();

            return(this);
        }
        /// <summary>
        /// Adds the new tier price.
        /// </summary>
        /// <param name="tierPricingModel">The tier pricing model.</param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">tierPricingModel</exception>
        public virtual TierPricesComponent AddNewTierPrice(
            TierPriceModel tierPricingModel)
        {
            if (tierPricingModel == null)
            {
                throw new ArgumentNullException(nameof(tierPricingModel));
            }

            var cachedWindowHandle  = WrappedDriver.CurrentWindowHandle;
            var cachedWindowHandles = WrappedDriver.WindowHandles;

            AddNewTierPriceElement.Click();

            WrappedDriver
            .Wait(TimeSpan.FromSeconds(10))
            .Until(d => d.WindowHandles.Count > cachedWindowHandles.Count);

            // Switch to new window.
            var newHandle = WrappedDriver.WindowHandles
                            .Except(cachedWindowHandles)
                            .First();

            WrappedDriver.SwitchTo().Frame(newHandle);

            // Load the StartDate/EndDate components.
            StartDateComponent.Load();
            EndDateComponent.Load();

            // Enter values.
            QuantityElement.SetValue(tierPricingModel.Quantity);
            PriceElement.SetValue(tierPricingModel.Price);
            StoreElement.SelectByText(tierPricingModel.Store);
            CustomerRoleElement.SelectByText(tierPricingModel.CustomerRole);
            StartDateComponent.SetValue(tierPricingModel.StartDate);
            EndDateComponent.SetValue(tierPricingModel.EndDate);

            // Save.
            var saveEl = SaveElement; // Cache this to avoid extra lookups.

            saveEl.Click();
            WrappedDriver
            .Wait(TimeSpan.FromSeconds(10))
            .Until(d => saveEl.IsStale());

            // Switch back to the original handle.
            WrappedDriver.SwitchTo().Frame(cachedWindowHandle);

            return(this);
        }