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);
        }
Example #2
0
        /// <summary>
        /// Searches the specified order search model.
        /// </summary>
        /// <param name="orderSearchModel">The order search model.</param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public virtual IListPage Search(OrderSearchModel orderSearchModel)
        {
            StartDateComponent.SetValue(orderSearchModel.StartDate);
            EndDateComponent.SetValue(orderSearchModel.EndDate);
            ProductNameElement.SetValue(orderSearchModel.ProductName);
            OrderStatusesComponent.SelectOptions(orderSearchModel.OrderStatuses);
            PaymentStatusesComponent.SelectOptions(orderSearchModel.PaymentStatuses);
            ShippingStatusesComponent.SelectOptions(orderSearchModel.ShippingStatuses);

            if (!String.IsNullOrEmpty(orderSearchModel.StoreName))
            {
                var storeIndex = StoreElement.Options.IndexOf(
                    el => String.Equals(
                        el.TextHelper().InnerText,
                        orderSearchModel.StoreName,
                        StringComparison.Ordinal));

                if (storeIndex == -1)
                {
                    throw new NoSuchElementException();
                }

                StoreElement.SelectByIndex(storeIndex);
            }

            if (!String.IsNullOrEmpty(orderSearchModel.VendorName))
            {
                var vendorIndex = StoreElement.Options.IndexOf(
                    el => String.Equals(
                        el.TextHelper().InnerText,
                        orderSearchModel.VendorName,
                        StringComparison.Ordinal));

                if (vendorIndex == -1)
                {
                    throw new NoSuchElementException();
                }

                VendorElement.SelectByIndex(vendorIndex);
            }

            BillingPhoneNumberElement.SetValue(orderSearchModel.BillingPhone);
            BillingEmailAddressElement.SetValue(orderSearchModel.BillingEmail);
            BillingLastNameElement.SetValue(orderSearchModel.BillingLastName);

            if (!String.IsNullOrEmpty(orderSearchModel.BillingCountryName))
            {
                var billingCountryIndex = BillingCountryElement.Options.IndexOf(
                    el => String.Equals(
                        el.TextHelper().InnerText,
                        orderSearchModel.BillingCountryName,
                        StringComparison.Ordinal));

                if (billingCountryIndex == -1)
                {
                    throw new NoSuchElementException();
                }

                BillingCountryElement.SelectByIndex(billingCountryIndex);
            }

            if (!String.IsNullOrEmpty(orderSearchModel.PaymentMethodName))
            {
                var paymentMethodIndex = PaymentMethodElement.Options.IndexOf(
                    el => String.Equals(
                        el.TextHelper().InnerText,
                        orderSearchModel.PaymentMethodName,
                        StringComparison.Ordinal));

                if (paymentMethodIndex == -1)
                {
                    throw new NoSuchElementException();
                }

                PaymentMethodElement.SelectByIndex(paymentMethodIndex);
            }

            OrderNotesElement.SetValue(orderSearchModel.OrderNotes);

            return(this);
        }