public void TestStartup()
        {
            driver = webDriverFactory.CreateDriver(
                MajorWebDriver.Chrome,
                WindowSize.DefaultDesktop);

            var serviceCollection = new ServiceCollection();

            serviceCollection.AddSingleton(driver);
            serviceCollection.AddSingleton(new PageOptions
            {
                Url = Startup.ServerUrl
            });

            pageObjectFactory = new PageObjectFactory(serviceCollection);

            var homePage = pageObjectFactory.PreparePage<HomePage>();

            widgetPage = homePage.GoToWidget(
                "kendo",
                "2014.1.318",
                "KDropDown");

            kDropDownComponent = new KDropDownComponent<WidgetPage>(
                new BaseKendoConfiguration
                {
                    ControlWithKeyboardInsteadOfMouse = true,
                    DataSource = new DataSourceOptions()
                },
                By.CssSelector("#dropdown"),
                driver,
                new KDropDownAnimationOptions(),
                widgetPage);
        }
        public void GetSelectedItemTest()
        {
            kDropDownComponent = pageObjectFactory
                .PrepareComponent(kDropDownComponent);

            var initialSelectedItem = kDropDownComponent.GetSelectedItem();
            kDropDownComponent.SetSelectedItem("5");
            var secondSelectedItem = kDropDownComponent.GetSelectedItem();

            Assert.AreEqual(initialSelectedItem, "2");
            Assert.AreEqual(secondSelectedItem, "5");
        }
        public void IsExpandedTest()
        {
            kDropDownComponent = pageObjectFactory
                .PrepareComponent(kDropDownComponent);

            var initialExpansion = kDropDownComponent.IsExpanded();

            var type = kDropDownComponent.GetType();
            type.GetMethod("Expand", BindingFlags.NonPublic | BindingFlags.Instance)
                .Invoke(kDropDownComponent, null);

            var secondExpansion = kDropDownComponent.IsExpanded();
            type.GetMethod("Close", BindingFlags.NonPublic | BindingFlags.Instance)
                .Invoke(kDropDownComponent, null);

            var thirdExpansion = kDropDownComponent.IsExpanded();

            Assert.IsFalse(initialExpansion);
            Assert.IsTrue(secondExpansion);
            Assert.IsFalse(thirdExpansion);
        }
        /// <summary>
        /// Initializes a new instance of the
        /// <see cref="KPager.KPagerComponent{T}"/> class.
        /// </summary>
        /// <param name="configuration">The configuration.</param>
        /// <param name="selector">The selector.</param>
        /// <param name="pageObjectFactory">The page object factory.</param>
        /// <param name="driver">The driver.</param>
        /// <param name="parent">The parent.</param>
        public KPagerComponent(BaseKendoConfiguration configuration,
                               By selector,
                               IPageObjectFactory pageObjectFactory,
                               IWebDriver driver,
                               T parent)
            : base(configuration,
                   selector,
                   driver,
                   parent)
        {
            if (driver == null)
            {
                throw new ArgumentNullException(nameof(driver));
            }
            else if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }
            else if (pageObjectFactory == null)
            {
                throw new ArgumentNullException(nameof(pageObjectFactory));
            }

            this.pageObjectFactory = pageObjectFactory;

            ItemsPerPageSelector = new ByChained(
                selector,
                By.CssSelector(".k-pager-sizes .k-dropdown select"));

            ItemsPerPageComponent = new KDropDownComponent <KPagerComponent <T> >(
                configuration,
                ItemsPerPageSelector,
                WrappedDriver,
                new KDropDownAnimationOptions(),
                this);
        }