public void Dashboard_Home_Giving_BigNumber_TurnOffAllFunds()
        {
            TestBaseWebDriver test    = base.TestContainer[Gallio.Framework.TestContext.CurrentContext.Test.Name];
            GeneralMethods    utility = test.GeneralMethods;
            DateTime          now     = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"));

            string[] viewTypes = new string[] { "week", "month", "quarter", "year" };

            try
            {
                int churchId = test.SQL.FetchChurchID(test.Dashboard.ChurchCode);
                int userId   = test.SQL.User_FetchID(churchId, test.Dashboard.DashboardEmail, test.Dashboard.DashboardUsername);

                test.Dashboard.LoginWebDriver();
                test.GeneralMethods.WaitForPageIsLoaded();
                DashboardHomePage     home     = new DashboardHomePage(test.Driver, test.GeneralMethods);
                DashboardSettingsPage settings = new DashboardSettingsPage(test.Driver, test.GeneralMethods, test.SQL);

                home.openSettingsPage();

                int totalItems = settings.getWidgetSubItemsOnPage(1).Count;

                for (int i = 1; i <= totalItems; i++)
                {
                    settings.uncheckWidgetItem(1, i);
                }

                settings.closeSettingsPage();

                foreach (string viewType in viewTypes)
                {
                    home.selectView(viewType);

                    string bigNumber      = home.getWidgetBigNumber(1);
                    double subTotalOnPage = double.Parse(bigNumber.Replace("$", "").Replace(",", ""));

                    DateTime[] dateRange    = test.Dashboard.getDateRange(now, viewType, 1);
                    double     subTotalInDb = test.SQL.Dashboard_Giving_GetPeriodSum(churchId, userId, dateRange[0], dateRange[1]);

                    //verify the big number on page is correct
                    TestLog.WriteLine(string.Format("{0}|{1}", subTotalOnPage, subTotalInDb));
                    Assert.AreEqual(subTotalOnPage, subTotalInDb);
                    Assert.AreEqual(subTotalOnPage, 0);
                }

                home.openSettingsPage();

                for (int i = 1; i <= totalItems; i++)
                {
                    settings.checkWidgetItem(1, i);
                }
            }
            finally
            {
                //clear test data
                test.SQL.Dashboard_ClearData(test.SQL.FetchChurchID(test.Dashboard.ChurchCode), test.Dashboard.DashboardUsername);
            }
        }
        public void Dashboard_Setting_NewFund_Refresh()
        {
            TestBaseWebDriver test    = base.TestContainer[Gallio.Framework.TestContext.CurrentContext.Test.Name];
            GeneralMethods    utility = test.GeneralMethods;

            string fund_name_1 = utility.GetUniqueName("fund1");
            string fund_name_2 = utility.GetUniqueName("fund2");
            int    church_id   = test.SQL.FetchChurchID(test.Dashboard.ChurchCode);

            try
            {
                test.Dashboard.LoginWebDriver();
                new DashboardHomePage(test.Driver, test.GeneralMethods).openSettingsPage();
                DashboardSettingsPage settings = new DashboardSettingsPage(test.Driver, test.GeneralMethods, test.SQL);

                ArrayList fundsOnPage = settings.getWidgetSubItemsOnPage(1);

                TestLog.WriteLine(fundsOnPage.Count);

                test.SQL.Giving_Funds_Create(church_id, fund_name_1, true, null, 1, true, "Auto Testing");
                test.SQL.Giving_Funds_Create(church_id, fund_name_2, true, null, 2, true, "Auto Testing");

                test.Driver.Navigate().Refresh();
                utility.WaitForPageIsLoaded();

                ArrayList fundsOnPageNew = settings.getWidgetSubItemsOnPage(1);

                //verify newly added fund has been shown on the page
                Assert.AreEqual(fundsOnPageNew.Count, fundsOnPage.Count + 1);
                Assert.IsTrue(fundsOnPageNew.Contains((object)fund_name_1));
            }
            finally
            {
                //clear test data
                test.SQL.Giving_Funds_Delete(church_id, fund_name_1);
                test.SQL.Giving_Funds_Delete(church_id, fund_name_2);
            }
        }
Example #3
0
        public void Dashboard_AttributeGroup_Settings_NewAttribute_WithoutStartDate()
        {
            TestBaseWebDriver test    = base.TestContainer[Gallio.Framework.TestContext.CurrentContext.Test.Name];
            GeneralMethods    utility = test.GeneralMethods;

            int    churchId                        = test.SQL.FetchChurchID(test.Dashboard.ChurchCode);
            string activeAttributeGroup            = utility.GetUniqueName("aag");
            string activeAttributeWithoutStartDate = utility.GetUniqueName("aawsd");

            try
            {
                test.SQL.Admin_IndividualAttributeGroups_Create(churchId, activeAttributeGroup, true);
                test.SQL.Admin_IndividualAttributes_Create(churchId, activeAttributeGroup, activeAttributeWithoutStartDate, true, false, false, false, true);

                test.Dashboard.LoginWebDriver();
                new DashboardHomePage(test.Driver, test.GeneralMethods).openSettingsPage();
                DashboardSettingsPage settings = new DashboardSettingsPage(test.Driver, test.GeneralMethods, test.SQL);

                int  widgetsTotal = settings.getWidgetsTotalOnPage();
                bool hasCustomerizedActiveAttributeWithoutStartDate = false;

                for (int i = 1; i <= widgetsTotal; i++)
                {
                    if (settings.getWidgetName(i).Contains(activeAttributeGroup))
                    {
                        ArrayList items = settings.getWidgetSubItemsOnPage(i);
                        foreach (string item in items)
                        {
                            if (item.Contains(activeAttributeWithoutStartDate))
                            {
                                TestLog.WriteLine(string.Format("The customerized active attribute '{0}' without 'start date' is found", item));
                                hasCustomerizedActiveAttributeWithoutStartDate = true;
                            }
                        }

                        Assert.IsFalse(hasCustomerizedActiveAttributeWithoutStartDate, "Active attribute without 'start date' should cannot be shown on page");
                        break;
                    }
                }
            }
            finally
            {
                //clear test data
                test.SQL.Admin_IndividualAttributes_Delete(churchId, activeAttributeGroup, activeAttributeWithoutStartDate);
                test.SQL.Admin_IndividualAttributeGroups_Delete(churchId, activeAttributeGroup);
            }
        }
        public void Dashboard_Setting_DefaultFunds()
        {
            TestBaseWebDriver test    = base.TestContainer[Gallio.Framework.TestContext.CurrentContext.Test.Name];
            GeneralMethods    utility = test.GeneralMethods;

            try
            {
                int churchId = test.SQL.FetchChurchID(test.Dashboard.ChurchCode);
                test.SQL.Dashboard_ClearData(churchId, test.Dashboard.DashboardUsername);

                test.Dashboard.LoginWebDriver();
                new DashboardHomePage(test.Driver, test.GeneralMethods).openSettingsPage();
                DashboardSettingsPage settings = new DashboardSettingsPage(test.Driver, test.GeneralMethods, test.SQL);

                ArrayList fundsInSql  = test.SQL.Dashboard_Giving_GetAllFundsName(churchId);
                ArrayList fundsOnPage = settings.getWidgetSubItemsOnPage(1);

                TestLog.WriteLine(fundsOnPage.Count);
                Assert.AreEqual(fundsInSql.Count, fundsOnPage.Count);

                foreach (var itemOnPage in fundsOnPage)
                {
                    bool flag = false;
                    TestLog.WriteLine(itemOnPage.ToString());
                    object[] funds = fundsInSql.ToArray();
                    for (int i = 0; i < funds.Length; i++)
                    {
                        if (funds[i].ToString().Replace(" ", "").Contains(itemOnPage.ToString().Replace(" ", "")))
                        {
                            flag = true;
                            TestLog.WriteLine(funds[i].ToString() + "|" + itemOnPage.ToString());
                            if (funds[i].ToString().Contains("inactive"))
                            {
                                Assert.IsTrue(settings.isWidgetItemInactive(1, i + 1));
                            }
                        }
                    }
                    Assert.IsTrue(flag);
                }
            }
            finally
            {
                //clear test data
            }
        }
        public void Dashboard_Setting_Saved_After_closed()
        {
            TestBaseWebDriver test        = base.TestContainer[Gallio.Framework.TestContext.CurrentContext.Test.Name];
            GeneralMethods    utility     = test.GeneralMethods;
            Random            rand        = new Random();
            bool checkOruncheckGivingItem = false;

            try
            {
                test.Dashboard.LoginWebDriver();
                new DashboardHomePage(test.Driver, test.GeneralMethods).openSettingsPage();
                DashboardSettingsPage settings = new DashboardSettingsPage(test.Driver, test.GeneralMethods, test.SQL);

                int numberOfSubItem        = settings.getWidgetSubItemsOnPage(1).Count;
                int randomSubItemIndex     = rand.Next(numberOfSubItem);
                int numberOfTurnedOnWidget = settings.getTurnedOnWidgetsTotalOnPage(settings.getWidgetsTotalOnPage());

                bool isGivingWidgetTurnedOn     = settings.isWidgetTurnedOn(1);
                bool isAttendanceWidgetTurnedOn = settings.isWidgetTurnedOn(2);

                #region make modification on settings page
                if (isGivingWidgetTurnedOn)
                {
                    if (numberOfSubItem > 0)
                    {
                        if (settings.isWidgetItemChecked(1, randomSubItemIndex))
                        {
                            settings.uncheckWidgetItem(1, randomSubItemIndex);
                            checkOruncheckGivingItem = false;
                        }
                        else
                        {
                            settings.checkWidgetItem(1, randomSubItemIndex);
                            checkOruncheckGivingItem = true;
                        }
                    }

                    settings.turnOffWidget(1);
                }
                else
                {
                    if (numberOfTurnedOnWidget < 6)
                    {
                        settings.turnOnWidget(1);
                    }
                    else
                    {
                        isGivingWidgetTurnedOn = !isGivingWidgetTurnedOn;
                        numberOfTurnedOnWidget++;
                    }

                    if (numberOfSubItem > 0)
                    {
                        if (settings.isWidgetItemChecked(1, randomSubItemIndex))
                        {
                            settings.uncheckWidgetItem(1, randomSubItemIndex);
                            checkOruncheckGivingItem = false;
                        }
                        else
                        {
                            settings.checkWidgetItem(1, randomSubItemIndex);
                            checkOruncheckGivingItem = true;
                        }
                    }
                }


                if (isAttendanceWidgetTurnedOn)
                {
                    settings.turnOffWidget(2);
                }
                else
                {
                    if (numberOfTurnedOnWidget < 6)
                    {
                        settings.turnOnWidget(2);
                    }
                    else
                    {
                        isAttendanceWidgetTurnedOn = !isAttendanceWidgetTurnedOn;
                    }
                }
                #endregion

                settings.closeSettingsPage();
                new DashboardHomePage(test.Driver, test.GeneralMethods).openSettingsPage();
                //verify all update on giving widget is saved
                Assert.AreEqual(settings.isWidgetTurnedOn(1), !isGivingWidgetTurnedOn);
                Assert.AreEqual(settings.isWidgetItemChecked(1, randomSubItemIndex), checkOruncheckGivingItem);
                //verify all update on attendance widget is saved
                Assert.AreEqual(settings.isWidgetTurnedOn(2), !isAttendanceWidgetTurnedOn);
            }
            finally
            {
                //clear test data
            }
        }
Example #6
0
        public void Dashboard_AttributeGroup_Settings_SpecialAttributes()
        {
            TestBaseWebDriver test    = base.TestContainer[Gallio.Framework.TestContext.CurrentContext.Test.Name];
            GeneralMethods    utility = test.GeneralMethods;

            int    churchId                             = test.SQL.FetchChurchID(test.Dashboard.ChurchCode);
            string activeAttributeGroup                 = utility.GetUniqueName("aag");
            bool   is_attribute_salvation_checked       = false;
            bool   is_attribute_baptism_checked         = false;
            bool   is_attribute_dedication_checked      = false;
            bool   is_attribute_re_dedication_checked   = false;
            bool   is_attribute_rededication_checked    = false;
            bool   is_attribute_baby_dedication_checked = false;

            try
            {
                test.SQL.Dashboard_ClearData(churchId, test.Dashboard.DashboardUsername);
                test.SQL.Admin_IndividualAttributeGroups_Create(churchId, activeAttributeGroup, true);
                test.SQL.Admin_IndividualAttributes_Create(churchId, activeAttributeGroup, "salvation", true, true, false, false, true);
                test.SQL.Admin_IndividualAttributes_Create(churchId, activeAttributeGroup, "baptism", true, true, false, false, true);
                test.SQL.Admin_IndividualAttributes_Create(churchId, activeAttributeGroup, "dedication", true, true, false, false, true);
                test.SQL.Admin_IndividualAttributes_Create(churchId, activeAttributeGroup, "re-dedication", true, true, false, false, true);
                test.SQL.Admin_IndividualAttributes_Create(churchId, activeAttributeGroup, "rededication", true, true, false, false, true);
                test.SQL.Admin_IndividualAttributes_Create(churchId, activeAttributeGroup, "baby dedication", true, true, false, false, true);

                test.Dashboard.LoginWebDriver();
                new DashboardHomePage(test.Driver, test.GeneralMethods).openSettingsPage();
                DashboardSettingsPage settings = new DashboardSettingsPage(test.Driver, test.GeneralMethods, test.SQL);

                int widgetsTotal = settings.getWidgetsTotalOnPage();

                for (int i = 1; i <= widgetsTotal; i++)
                {
                    if (settings.getWidgetName(i).Contains(activeAttributeGroup))
                    {
                        object[] items = settings.getWidgetSubItemsOnPage(i).ToArray();
                        for (int j = 0; j < items.Length; j++)
                        {
                            if (items[j].ToString().ToLower().Contains("salvation"))
                            {
                                TestLog.WriteLine(string.Format("The active attribute '{0}' is found", items[j]));
                                is_attribute_salvation_checked = settings.isWidgetItemChecked(i, j + 1);
                                Assert.IsTrue(is_attribute_salvation_checked, string.Format("Active attribute '{0}' should be checked by default", items[j]));
                                continue;
                            }

                            if (items[j].ToString().ToLower().Contains("baptism"))
                            {
                                TestLog.WriteLine(string.Format("The active attribute '{0}' is found", items[j]));
                                is_attribute_baptism_checked = settings.isWidgetItemChecked(i, j + 1);
                                Assert.IsTrue(is_attribute_baptism_checked, string.Format("Active attribute '{0}' should be checked by default", items[j]));
                                continue;
                            }

                            if (items[j].ToString().ToLower().Contains("dedication"))
                            {
                                TestLog.WriteLine(string.Format("The active attribute '{0}' is found", items[j]));
                                is_attribute_dedication_checked = settings.isWidgetItemChecked(i, j + 1);
                                Assert.IsTrue(is_attribute_dedication_checked, string.Format("Active attribute '{0}' should be checked by default", items[j]));
                                continue;
                            }

                            if (items[j].ToString().ToLower().Contains("re-dedication"))
                            {
                                TestLog.WriteLine(string.Format("The active attribute '{0}' is found", items[j]));
                                is_attribute_re_dedication_checked = settings.isWidgetItemChecked(i, j + 1);
                                Assert.IsTrue(is_attribute_re_dedication_checked, string.Format("Active attribute '{0}' should be checked by default", items[j]));
                                continue;
                            }

                            if (items[j].ToString().ToLower().Contains("rededication"))
                            {
                                TestLog.WriteLine(string.Format("The active attribute '{0}' is found", items[j]));
                                is_attribute_rededication_checked = settings.isWidgetItemChecked(i, j + 1);
                                Assert.IsTrue(is_attribute_rededication_checked, string.Format("Active attribute '{0}' should be checked by default", items[j]));
                                continue;
                            }

                            if (items[j].ToString().ToLower().Contains("baby dedication"))
                            {
                                TestLog.WriteLine(string.Format("The active attribute '{0}' is found", items[j]));
                                is_attribute_baby_dedication_checked = settings.isWidgetItemChecked(i, j + 1);
                                Assert.IsTrue(is_attribute_baby_dedication_checked, string.Format("Active attribute '{0}' should be checked by default", items[j]));
                            }
                        }
                    }
                }
            }
            finally
            {
                //clear test data
                test.SQL.Admin_IndividualAttributes_Delete(churchId, activeAttributeGroup, "salvation");
                test.SQL.Admin_IndividualAttributes_Delete(churchId, activeAttributeGroup, "baptism");
                test.SQL.Admin_IndividualAttributes_Delete(churchId, activeAttributeGroup, "dedication");
                test.SQL.Admin_IndividualAttributes_Delete(churchId, activeAttributeGroup, "re-dedication");
                test.SQL.Admin_IndividualAttributes_Delete(churchId, activeAttributeGroup, "rededication");
                test.SQL.Admin_IndividualAttributes_Delete(churchId, activeAttributeGroup, "baby dedication");
                test.SQL.Admin_IndividualAttributeGroups_Delete(churchId, activeAttributeGroup);
            }
        }