public void Can_deactivate_brand()
        {
            const string defaultLicensee = "Flycow";
            var          brandQueries    = _container.Resolve <BrandQueries>();
            var          licensee        = brandQueries.GetLicensees().First(x => x.Name == defaultLicensee);
            //creatr brand
            var brandTestHelper = _container.Resolve <BrandTestHelper>();
            var brand           = brandTestHelper.CreateBrand(licensee);

            //check brand
            _dashboardPage.BrandFilter.SelectAll();
            var viewBrandForm = _brandManagerPage.OpenViewBrandForm(brand.Name);

            Assert.AreEqual(licensee.Name, viewBrandForm.Licensee);
            Assert.AreEqual(brand.Name, viewBrandForm.BrandName);
            Assert.AreEqual(brand.Type.ToString(), viewBrandForm.BrandType);
            Assert.AreEqual(brand.Code, viewBrandForm.BrandCode);
            Assert.AreEqual(brand.Status.ToString(), viewBrandForm.Status);
            Assert.AreEqual(brand.PlayerPrefix, viewBrandForm.PlayerPrefix);
            viewBrandForm.CloseTab("View Brand");
            //activate brand
            var activateDialog        = _brandManagerPage.OpenBrandActivateDialog(brand.Name);
            var confirmActivateDialog = activateDialog.Activate("approved activate");

            Assert.AreEqual("This brand has been successfully activated.", confirmActivateDialog.ConfirmationMessage);
            confirmActivateDialog.Close();
            //deactivate brand
            var deactivateDialog        = _brandManagerPage.OpenBrandDeactivateDialog(brand.Name);
            var confirmDeactivateDialog = deactivateDialog.Deactivate("approved deactivate");

            Assert.AreEqual("This brand has been successfully deactivated", confirmActivateDialog.ConfirmationMessage);
            confirmActivateDialog.Close();
            //check brand's deactivate
            Assert.IsTrue(_brandManagerPage.CheckDeactivatedBrandStatus(brand.Name));
        }
        public void Can_assign_more_countries_to_brand()
        {
            //create brand
            const string licensee     = "Flycow";
            var          brandName    = "brand-" + TestDataGenerator.GetRandomAlphabeticString(6);
            var          brandCode    = TestDataGenerator.GetRandomString(size: 4, charsToUse: TestDataGenerator.NumericChars);
            var          playerPrefix = TestDataGenerator.GetRandomAlphabeticString(3);
            var          country      = TestDataGenerator.CountryNames;

            _dashboardPage.BrandFilter.SelectAll();
            var newBrandForm       = _brandManagerPage.OpenNewBrandForm();
            var submittedBrandForm = newBrandForm.Submit(brandName, brandCode, playerPrefix);

            Assert.AreEqual("The brand has been successfully created.", submittedBrandForm.ConfirmationMessage);
            submittedBrandForm.CloseTab("View Brand");
            //check brand
            _driver.Navigate().Refresh();
            _dashboardPage.BrandFilter.SelectAll();
            _brandManagerPage = _dashboardPage.Menu.ClickBrandManagerItem();
            var viewBrandForm = _brandManagerPage.OpenViewBrandForm(brandName);

            Assert.AreEqual(licensee, viewBrandForm.Licensee);
            Assert.AreEqual(brandName, viewBrandForm.BrandName);
            Assert.AreEqual("Deposit", viewBrandForm.BrandType);
            Assert.AreEqual(brandCode, viewBrandForm.BrandCode);
            Assert.AreEqual("Inactive", viewBrandForm.Status);
            Assert.AreEqual(playerPrefix, viewBrandForm.PlayerPrefix);
            viewBrandForm.CloseTab("View Brand");
            //assign countries to brand
            var supportedCountriesPage       = _brandManagerPage.Menu.ClickSupportedCountriesMenuItem();
            var assignCountriesForm          = supportedCountriesPage.OpenAssignCountriesForm();
            var submittedAssignCountriesForm = assignCountriesForm.AssignCountries(licensee, brandName, new string[] { country[0], country[1] });

            Assert.AreEqual("The countries have been successfully assigned", submittedAssignCountriesForm.ConfirmationMessage);
            Assert.AreEqual(licensee, submittedAssignCountriesForm.Licensee);
            Assert.AreEqual(brandName, submittedAssignCountriesForm.Brand);
            Assert.IsTrue(submittedAssignCountriesForm.IsCountryDisplayed(country[0]));
            Assert.IsTrue(submittedAssignCountriesForm.IsCountryDisplayed(country[1]));
            submittedAssignCountriesForm.CloseTab("View Assigned Countries");
            //assign more countries to brand
            assignCountriesForm = supportedCountriesPage.OpenAssignCountriesForm();
            var submittedMoreAssignCountriesForm = assignCountriesForm.AssignCountries(licensee, brandName, new string[] { country[2], country[3] });

            Assert.AreEqual("The countries have been successfully assigned", submittedMoreAssignCountriesForm.ConfirmationMessage);
            Assert.AreEqual(licensee, submittedMoreAssignCountriesForm.Licensee);
            Assert.AreEqual(brandName, submittedMoreAssignCountriesForm.Brand);
            Assert.IsTrue(submittedMoreAssignCountriesForm.IsCountryDisplayed(country[0]));
            Assert.IsTrue(submittedMoreAssignCountriesForm.IsCountryDisplayed(country[1]));
            Assert.IsTrue(submittedMoreAssignCountriesForm.IsCountryDisplayed(country[2]));
            Assert.IsTrue(submittedMoreAssignCountriesForm.IsCountryDisplayed(country[3]));
        }
        public void Can_unassign_products_to_brand()
        {
            //create brand
            const string licensee     = "Flycow";
            var          brandName    = "brand-" + TestDataGenerator.GetRandomAlphabeticString(6);
            var          brandCode    = TestDataGenerator.GetRandomString(size: 4, charsToUse: TestDataGenerator.NumericChars);
            var          playerPrefix = TestDataGenerator.GetRandomAlphabeticString(3);

            _dashboardPage.BrandFilter.SelectAll();
            var newBrandForm       = _brandManagerPage.OpenNewBrandForm();
            var submittedBrandForm = newBrandForm.Submit(brandName, brandCode, playerPrefix);

            Assert.AreEqual("The brand has been successfully created.", submittedBrandForm.ConfirmationMessage);
            submittedBrandForm.CloseTab("View Brand");
            //check brand
            _driver.Navigate().Refresh();
            _dashboardPage.BrandFilter.SelectAll();
            _brandManagerPage = _dashboardPage.Menu.ClickBrandManagerItem();
            var viewBrandForm = _brandManagerPage.OpenViewBrandForm(brandName);

            Assert.AreEqual(licensee, viewBrandForm.Licensee);
            Assert.AreEqual(brandName, viewBrandForm.BrandName);
            Assert.AreEqual("Deposit", viewBrandForm.BrandType);
            Assert.AreEqual(brandCode, viewBrandForm.BrandCode);
            Assert.AreEqual("Inactive", viewBrandForm.Status);
            Assert.AreEqual(playerPrefix, viewBrandForm.PlayerPrefix);
            viewBrandForm.CloseTab("View Brand");
            //assign product to brand
            var supportedProductsPage       = _brandManagerPage.Menu.ClickSupportedProductsMenuItem();
            var assignProductForm           = supportedProductsPage.OpenManageProductsPage();
            var submittedAssignProductsForm = assignProductForm.AssignProducts(licensee, brandName, new[] { "Mock Sport Bets", "Mock Casino" });

            Assert.AreEqual("The products have been successfully assigned", submittedAssignProductsForm.Confirmation);
            Assert.AreEqual(licensee, submittedAssignProductsForm.Licensee);
            Assert.AreEqual(brandName, submittedAssignProductsForm.Brand);
            Assert.IsTrue(submittedAssignProductsForm.IsProductDisplayed("Mock Sport Bets"));
            Assert.IsTrue(submittedAssignProductsForm.IsProductDisplayed("Mock Casino"));
            submittedAssignProductsForm.CloseTab("View Assigned Products");
            //unassign product to brand
            var unassignProductForm           = supportedProductsPage.OpenManageProductsPage();
            var submittedUnassignProductsForm = unassignProductForm.UnassignProducts(licensee, brandName, new[] { "Mock Casino" });

            Assert.AreEqual("The products have been successfully assigned", submittedUnassignProductsForm.Confirmation);
            Assert.AreEqual(licensee, submittedUnassignProductsForm.Licensee);
            Assert.AreEqual(brandName, submittedUnassignProductsForm.Brand);
            Assert.IsTrue(submittedUnassignProductsForm.IsProductDisplayed("Mock Sport Bets"));
        }
        public void Can_view_brand()
        {
            const string defaultLicensee = "Flycow";
            var          brandQueries    = _container.Resolve <BrandQueries>();
            var          licensee        = brandQueries.GetLicensees().First(x => x.Name == defaultLicensee);

            var brandTestHelper = _container.Resolve <BrandTestHelper>();
            var brand           = brandTestHelper.CreateBrand(licensee);

            _driver.Navigate().Refresh();
            _dashboardPage.BrandFilter.SelectAll();
            _brandManagerPage = _dashboardPage.Menu.ClickBrandManagerItem();

            var viewBrandForm = _brandManagerPage.OpenViewBrandForm(brand.Name);

            Assert.AreEqual(licensee.Name, viewBrandForm.Licensee);
            Assert.AreEqual(brand.Name, viewBrandForm.BrandName);
            Assert.AreEqual(brand.Type.ToString(), viewBrandForm.BrandType);
            Assert.AreEqual(brand.Code, viewBrandForm.BrandCode);
            Assert.AreEqual(brand.Status.ToString(), viewBrandForm.Status);
            Assert.AreEqual(brand.PlayerPrefix, viewBrandForm.PlayerPrefix);
        }