예제 #1
0
        public void TestAddCountry()
        {
            int beforeAddCountry = 0;
            int afterAddCountry  = 0;

            IWebElement addCountryBtn = Browser.FindElementByXPath("//a[@id='CreateCountry']");

            addCountryBtn.Click();

            timeout.Until(m => m.FindElement(By.XPath("//div[@id='Create Country']")));
            IWebElement modalWindow = Browser.FindElementByXPath("//div[@id='Create Country']");

            IWebElement CountryName = modalWindow.FindElement(By.XPath("//input[@id='CountryName']"));
            IWebElement Comment     = modalWindow.FindElement(By.XPath("//input[@id='Comment']"));

            IWebElement saveBtn = modalWindow.FindElement(By.XPath("//div[@class='ui-dialog-buttonset']"));

            Browser.SendKeysTo(CountryName, "Nepal", false);
            Browser.SendKeysTo(Comment, "Test Comment", false);
            Thread.Sleep(Timings.Default_ms * 15);

            using (var db = new AjourBTForTestContext())
            {
                beforeAddCountry = db.Countries.Count();
                Browser.ClickOnWebElement(saveBtn);
                Thread.Sleep(Timings.Default_ms * 10);
                afterAddCountry = db.Countries.Count();
            }

            string classValue = Browser.FindElementByLinkText("Nepal").GetAttribute("class");

            Assert.Less(beforeAddCountry, afterAddCountry);
            Assert.AreEqual("countryEditDialog", classValue);
        }
예제 #2
0
        public void PrivateTripDelete()
        {
            int beforeDeletePrivateTrip = 0;
            int afterDeletePrivateTrip  = 0;

            IWebElement elemToDelete = Browser.FindElementByXPath("//tbody[@id='PTViewBody']/tr").FindElements(By.XPath("//a[@id='editPrivateTrip']"))
                                       .Where(e => e.Text.Contains(Tools.FirstDayOfMonth) && e.Text.Contains(Tools.TodayDate)).FirstOrDefault();

            Browser.ClickOnWebElement(elemToDelete);
            Thread.Sleep(Timings.Default_ms * 20);
            IWebElement btnDeletePrivateTrip = Browser.FindElementByXPath("//button[@id='btnDeletePrivateTrip']");

            Browser.ClickOnWebElement(btnDeletePrivateTrip);

            Thread.Sleep(Timings.Default_ms * 15);
            IWebElement btnOKDeletePrivateTrip = Browser.FindElementByXPath("//button[@id='btnOKDeletePrivateTrip']");

            using (var db = new AjourBTForTestContext())
            {
                beforeDeletePrivateTrip = db.PrivateTrips.Count();
                Browser.ClickOnWebElement(btnOKDeletePrivateTrip);
                Thread.Sleep(Timings.Default_ms * 30);
                afterDeletePrivateTrip = db.PrivateTrips.Count();
            }

            empList = Tools.GetAllTableData("//tr[contains(@class,'zebra')]", Browser.webDriver);

            Assert.Less(afterDeletePrivateTrip, beforeDeletePrivateTrip);
            Assert.IsFalse(empList[0].Text.Contains(Tools.TestDate));
        }
예제 #3
0
        public void CheckBirthdays()
        {
            DateTime        fromDate  = DateTime.Now.Date;
            DateTime        toDate    = fromDate.AddDays(30).Date;
            List <Employee> birthList = new List <Employee>();

            using (var db = new AjourBTForTestContext())
            {
                List <Employee> emp = (from e in db.Employees
                                       where
                                       e.DateDismissed == null &&
                                       e.BirthDay.HasValue
                                       orderby e.BirthDay.Value
                                       select e).ToList();

                DateTime date;
                foreach (Employee e in emp)
                {
                    date = TransformBirthDate(e.BirthDay.Value, DateTime.Now.Date);
                    if (date >= fromDate.AddDays(-10) && date <= toDate)
                    {
                        birthList.Add(e);
                    }
                }
            }

            ReadOnlyCollection <IWebElement> bdayList = Browser.FindElementsByXPath("//table[@id='bdayTable']/tbody/tr");

            Assert.AreEqual(birthList.Count, bdayList.Count);
        }
예제 #4
0
        public void EditUnit_NothingChanged()
        {
            int unitsCountBefore, unitsCountAfter;

            using (AjourBTForTestContext dbContext = new AjourBTForTestContext())
            {
                unitsCountBefore = dbContext.Units.Count();
            }

            Browser.ClickByXPath("/html/body/div[1]/div/div[6]/div/table/tbody/tr[7]/td[1]/a");
            Thread.Sleep(Timings.Default_ms * 10);

            Assert.AreEqual("Edit Unit", Browser.FindElementByXPath("//*[@id='ui-dialog-title-Edit Unit']").Text);
            Assert.AreEqual("ShortTitle", Browser.FindElementByXPath("/html/body/div[3]/div[2]/form[1]/fieldset/table/tbody/tr[1]/td[1]/label").Text);
            Assert.AreEqual("Title", Browser.FindElementByXPath("/html/body/div[3]/div[2]/form[1]/fieldset/table/tbody/tr[2]/td[1]/label").Text);

            Browser.ClickByXPath("//*[@id='btnSaveUnit']");
            Thread.Sleep(Timings.Default_ms * 10);


            IWebElement positionsTable = Browser.FindElementByXPath("/html/body/div[1]/div/div[6]/div/table");

            Assert.AreEqual(unitsCountBefore + 1, positionsTable.FindElements(By.TagName("tr")).Count());
            Assert.AreEqual("1", Browser.FindElementByXPath("/html/body/div[1]/div/div[6]/div/table/tbody/tr[7]/td[1]/a").Text);
            Assert.AreEqual("2", Browser.FindElementByXPath("/html/body/div[1]/div/div[6]/div/table/tbody/tr[7]/td[2]/a").Text);
            Assert.IsTrue(Browser.FindElementByXPath("/html/body/div[1]/div/div[6]/div/table/tbody/tr[7]/td[1]/a").GetAttribute("href").Contains("/PU/UnitEdit/6"));
            Assert.IsTrue(Browser.FindElementByXPath("/html/body/div[1]/div/div[6]/div/table/tbody/tr[7]/td[2]/a").GetAttribute("href").Contains("/PU/UnitEdit/6"));
            using (AjourBTForTestContext dbContext = new AjourBTForTestContext())
            {
                unitsCountAfter = dbContext.Units.Count();
            }
            Assert.AreEqual(unitsCountAfter, unitsCountBefore);
        }
예제 #5
0
        public void DropdownListOfUnits_SelectedUnit()
        {
            //Arrange
            string unit = "-";
            int    year = DateTime.Now.ToLocalTimeAzure().Year;

            //Act
            Thread.Sleep(Timings.Default_ms * 20);
            Browser.SelectByValue("//*[@id='vuByUnitsFirstHeader']/td[7]/span/select", unit);
            Thread.Sleep(Timings.Default_ms * 10);
            using (AjourBTForTestContext db = new AjourBTForTestContext())
            {
                int rows = (from u in btsByUnitsFromRepository(year).AsEnumerable()
                            where u.Unit.ShortTitle == unit
                            select u).ToList().Count();
                List <BusinessTrip> employeeBts = btsByUnitsFromRepository(year).Where(b => b.Unit.ShortTitle == unit).ToList();

                ReadOnlyCollection <IWebElement> empTable = Browser.FindElementsByXPath("//*[@id='exampleBtsViewByUnits']/tbody/tr");
                foreach (var element in empTable)
                {
                    Assert.IsTrue(element.Text.Contains("-"));
                }
                //Assert
                Assert.AreEqual(employeeBts.Count, rows);
                Assert.AreEqual(unit, Browser.GetText("//*[@id='vuByUnitsFirstHeader']/td[7]/span/select/option[2]"));
            }
        }
예제 #6
0
        public void AddGreeting_InValidInput_ValidationErrors()
        {
            List <Greeting> listBeforeAdd = new List <Greeting>();

            using (AjourBTForTestContext db = new AjourBTForTestContext())
            {
                listBeforeAdd = (from d in db.Greetings.AsEnumerable() select d).ToList();
            }
            Browser.ClickByXPath("//*[@id='CreateGreeting']/span/span");

            Assert.AreEqual(Browser.GetText("//*[@id='ui-dialog-title-Create Greeting']"), "Create Greeting");
            Assert.AreEqual(Browser.GetText("//*[@id='createGreetingForm']/fieldset/table/tbody/tr[1]/td[1]/label"), "GreetingHeader");
            Assert.AreEqual(Browser.GetText("//*[@id='createGreetingForm']/fieldset/table/tbody/tr[2]/td[1]/label"), "GreetingBody");

            Browser.ClickByXPath("/html/body/div[3]/div[11]/div/button/span");

            List <Greeting> listAfterAdd = new List <Greeting>();

            using (AjourBTForTestContext data = new AjourBTForTestContext())
            {
                listAfterAdd = (from d in data.Greetings.AsEnumerable() select d).ToList();
            }
            Assert.IsTrue(Browser.HasElementByXPath("//*[@id='createGreetingForm']/fieldset/table/tbody/tr[1]/td[2]/span/span"));
            Assert.AreEqual(Browser.GetText("//*[@id='createGreetingForm']/fieldset/table/tbody/tr[1]/td[2]/span/span"), "The GreetingHeader field is required.");
            Assert.IsTrue(Browser.HasElementByXPath("//*[@id='createGreetingForm']/fieldset/table/tbody/tr[2]/td[2]/span/span"));
            Assert.AreEqual(Browser.GetText("//*[@id='createGreetingForm']/fieldset/table/tbody/tr[2]/td[2]/span/span"), "The GreetingBody field is required.");
            Assert.AreEqual(listBeforeAdd.Count, listAfterAdd.Count);
        }
예제 #7
0
        public void CheckJourneys()
        {
            Thread.Sleep(Timings.Default_ms * 20);

            ReadOnlyCollection <IWebElement> daysFromBtTable = Browser.FindElementsByXPath("//tbody[@id='tbodyJourneys']/tr");

            Thread.Sleep(Timings.Default_ms * 30);

            using (var db = new AjourBTForTestContext())
            {
                List <BusinessTrip> btList = (from bt in db.BusinessTrips where bt.Journeys.Count > 0 select bt).ToList();

                foreach (BusinessTrip item in btList)
                {
                    Employee       employee    = (from emp in db.Employees.AsEnumerable() where emp.EmployeeID == item.EmployeeID select emp).FirstOrDefault();
                    List <Journey> journeyList = (from bts in db.BusinessTrips where
                                                  bts.EmployeeID == employee.EmployeeID && bts.Journeys.Count > 0
                                                  from journ in bts.Journeys
                                                  where journ.DayOff == true
                                                  select journ).ToList();
                    if (journeyList.Count != 0)
                    {
                        foreach (Journey j in journeyList)
                        {
                            Console.WriteLine(j.Date.ToString(String.Format("dd.MM.yyyy")));
                        }
                    }
                }
            }
        }
예제 #8
0
        public void Employees_DropdownListOfDepartments_SelectedDepartment()
        {
            //Arrange
            string          expected     = "BOARD";
            List <Employee> empsFromRepo = new List <Employee>();

            //Act
            //Browser.Refresh();
            //Thread.Sleep(Timings.Default_ms*10);
            //Browser.ClickOnLink("Calendar");
            //Thread.Sleep(Timings.Default_ms*20);
            Browser.ClickByXPath("/html/body/div[1]/div/div[5]/form/div[1]/select");
            Browser.ClickByXPath("/html/body/div[1]/div/div[5]/form/div[1]/select/option[2]");
            int employees = Browser.Count("//*[contains(@id,'rowheader')]/span");

            using (var db = new AjourBTForTestContext())
            {
                empsFromRepo = db.Employees
                               .Where(emp => emp.Department.DepartmentName == "BOARD" &&
                                      emp.DateDismissed == null).ToList();
            }


            //Assert
            Assert.AreEqual(expected, Browser.GetText("//*[@id='depDropList']/option[2]"));
            Assert.AreEqual(empsFromRepo.Count(), 10);
        }
예제 #9
0
        public void UnpaidVacation_Deleted()
        {
            int beforeDeleteUnpaid = 0;
            int afterDeleteUnpaid  = 0;

            TeardownTest();
            LoginAsABM();
            Browser.ClickOnLink("Calendar");
            Thread.Sleep(Timings.Default_ms * 30);
            IWebElement unpaidVacation = Browser.FindElementByXPath("//div[@class='bar ganttRed'][@dayfrom='" + todayDateMillisecondsFromEpoch + "'][@dayto='" + todayDatePlus14DaysMillisecondsFromEpoch + "']");

            Browser.ClickOnWebElement(unpaidVacation);

            Thread.Sleep(Timings.Default_ms * 15);
            using (var db = new AjourBTForTestContext())
            {
                beforeDeleteUnpaid = db.Vacations.Count(item => item.Type == VacationType.UnpaidVacation);
                IWebElement Delete = Browser.FindElementByXPath("//a[@id='Delete']");
                Browser.ClickOnWebElement(Delete);
                Thread.Sleep(Timings.Default_ms * 20);
                afterDeleteUnpaid = db.Vacations.Count(item => item.Type == VacationType.UnpaidVacation);
            }
            Thread.Sleep(Timings.Default_ms * 20);
            TeardownTest();
            Setup();
            Thread.Sleep(Timings.Default_ms * 20);
            Assert.Less(afterDeleteUnpaid, beforeDeleteUnpaid);
            IWebElement deletedElem = Browser.FindElementByXPath("//div[@class='bar ganttRed'][@dayfrom='" + todayDateMillisecondsFromEpoch + "'][@dayto='" + todayDatePlus14DaysMillisecondsFromEpoch + "']");
        }
예제 #10
0
        public void ClickOnSendButton()
        {
            Employee empWithGreetingMessageAllow = new Employee();

            using (var db = new AjourBTForTestContext())
            {
                empWithGreetingMessageAllow = (from emp in db.Employees where !(String.IsNullOrEmpty(emp.EMail)) && emp.DateDismissed == null select emp).FirstOrDefault();
            }

            if (empWithGreetingMessageAllow != null)
            {
                ReadOnlyCollection <IWebElement> empTable = Browser.FindElementsByXPath("//tbody[@id='PUEmployee']/tr");
                Console.WriteLine(empWithGreetingMessageAllow);
                foreach (var element in empTable)
                {
                    Console.WriteLine(element.Text);
                    if (element.Text.Contains(empWithGreetingMessageAllow.FirstName))
                    {
                        Console.WriteLine(empWithGreetingMessageAllow.FirstName + " - " + element.Text);
                        Assert.IsTrue(element.Text.Contains(empWithGreetingMessageAllow.LastName));
                        Assert.IsTrue(element.Text.Contains(empWithGreetingMessageAllow.EID));
                    }
                }
            }
        }
예제 #11
0
        public void CheckDaysFromBTs_Overtimes_ealv()
        {
            ReadOnlyCollection <IWebElement> overtimesFromBtTable = Browser.FindElementsByXPath("//a[@id='overtimeLink']");

            using (var db = new AjourBTForTestContext())
            {
                Employee        ealv      = db.Employees.Where(e => e.EID == "ealv").FirstOrDefault();
                List <Overtime> overtimes = (from item in db.Overtimes where
                                             item.Type == OvertimeType.Paid && item.EmployeeID == ealv.EmployeeID
                                             select item).ToList();

                Assert.AreEqual(overtimesFromBtTable.Count, overtimes.Count);
                if (overtimes.Count > 0)
                {
                    IWebElement daysFromBtTable = Browser.FindElementByXPath("//table[@id='journeysViewABM']/tbody[@id='tbodyJourneys']");
                    foreach (Overtime item in overtimes)
                    {
                        Assert.IsTrue(daysFromBtTable.Text.Contains(item.Date.ToString(String.Format("dd.MM.yyyy"))));
                    }
                }
                else
                {
                    Thread.Sleep(Timings.Default_ms * 10);
                    Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[4]/b"), "You have no days for reclaim");
                }
            }
        }
예제 #12
0
        public void K_CreatePrivateMinus_TodayDate_id49()
        {
            int beforeCreatePrivateMinus = 0;
            int afterCreatePrivateMinus  = 0;

            IWebElement calendarField = Browser.FindElementByXPath("//div[@class='calendar']");

            Browser.ClickOnWebElement(calendarField);
            Browser.Wait(10);

            IWebElement selectEvent      = Browser.FindElementByXPath("//select[@id='event']");
            IWebElement dateVacationFrom = Browser.FindElementByXPath("//input[@id='dateVacationFrom']");
            IWebElement dateVacationTo   = Browser.FindElementByXPath("//input[@id='dateVacationTo']");
            IWebElement CreateEvent      = Browser.FindElementByXPath("//a[@id='CreateEvent']");

            Browser.SelectOption("event", 4);
            ((IJavaScriptExecutor)Browser.webDriver).ExecuteScript("document.getElementById('dateVacationFrom').removeAttribute('readonly')");
            ((IJavaScriptExecutor)Browser.webDriver).ExecuteScript("document.getElementById('dateVacationTo').removeAttribute('readonly')");
            Browser.SendKeysTo(dateVacationFrom, todayDate, true);
            Browser.SendKeysTo(dateVacationTo, todayDate, true);

            using (var db = new AjourBTForTestContext())
            {
                beforeCreatePrivateMinus = db.Overtimes.Count(o => o.Type == OvertimeType.Private);
                Browser.ClickOnWebElement(CreateEvent);
                Thread.Sleep(Timings.Default_ms * 10);
                afterCreatePrivateMinus = db.Overtimes.Count(o => o.Type == OvertimeType.Private);
            }

            IWebElement privateMinusBar = Browser.FindElementByXPath("//div[@class='bar ganttYellow'][@dayfrom='" + todayDateMillisecondsFromEpoch + "'][@dayto='" + todayDateMillisecondsFromEpoch + "'][@data_id='49']");

            Assert.Less(beforeCreatePrivateMinus, afterCreatePrivateMinus);
            Assert.AreEqual("49", privateMinusBar.GetAttribute("data_id"));
            Assert.AreEqual("PrivateMinus From: " + todayDate + " - To: " + todayDate + "", privateMinusBar.GetAttribute("desc"));
        }
예제 #13
0
        public void H_CreateReclaimedOvertime_TodayDatePlus14days_id49()
        {
            int beforeCreateReclaimedOvertime = 0;
            int afterCreatereclaimedOvertime  = 0;

            IWebElement calendarField = Browser.FindElementByXPath("//div[@class='calendar']");

            Browser.ClickOnWebElement(calendarField);
            Thread.Sleep(Timings.Default_ms * 20);

            IWebElement selectEvent      = Browser.FindElementByXPath("//select[@id='event']");
            IWebElement dateVacationFrom = Browser.FindElementByXPath("//input[@id='dateVacationFrom']");
            IWebElement dateVacationTo   = Browser.FindElementByXPath("//input[@id='dateVacationTo']");
            IWebElement CreateEvent      = Browser.FindElementByXPath("//a[@id='CreateEvent']");

            Browser.SelectOption("event", 2);
            ((IJavaScriptExecutor)Browser.webDriver).ExecuteScript("document.getElementById('dateVacationFrom').removeAttribute('readonly')");
            ((IJavaScriptExecutor)Browser.webDriver).ExecuteScript("document.getElementById('dateVacationTo').removeAttribute('readonly')");
            Browser.SendKeysTo(dateVacationFrom, todayDatePlus14Days, true);
            Browser.SendKeysTo(dateVacationTo, todayDatePlus14Days, true);

            using (var db = new AjourBTForTestContext())
            {
                beforeCreateReclaimedOvertime = db.CalendarItems.Count();
                Browser.ClickOnWebElement(CreateEvent);
                Thread.Sleep(Timings.Default_ms * 20);
                afterCreatereclaimedOvertime = db.CalendarItems.Count();
            }

            IWebElement reclaimedOvertimeBar = Browser.FindElementByXPath("//div[@class='bar ganttOrange'][@dayfrom='" + todayDatePlus14DaysMillisecondsFromEpoch + "'][@dayto='" + todayDatePlus14DaysMillisecondsFromEpoch + "'][@data_id='49']");

            Assert.Less(beforeCreateReclaimedOvertime, afterCreatereclaimedOvertime);
            Assert.AreEqual("49", reclaimedOvertimeBar.GetAttribute("data_id"));
            Assert.AreEqual("ReclaimedOvertime From: " + todayDatePlus14Days + " - To: " + todayDatePlus14Days + "", reclaimedOvertimeBar.GetAttribute("desc"));
        }
예제 #14
0
        public void TestAddThesameCountry_CannotAdd()
        {
            int beforeAddCountry = 0;
            int afterAddCountry  = 0;

            IWebElement addCountryBtn = Browser.FindElementByXPath("//a[@id='CreateCountry']");

            addCountryBtn.Click();

            timeout.Until(m => m.FindElement(By.XPath("//div[@id='Create Country']")));
            IWebElement modalWindow = Browser.FindElementByXPath("//div[@id='Create Country']");

            IWebElement CountryName = modalWindow.FindElement(By.XPath("//input[@id='CountryName']"));
            IWebElement Comment     = modalWindow.FindElement(By.XPath("//input[@id='Comment']"));

            IWebElement saveBtn = modalWindow.FindElement(By.XPath("//div[@class='ui-dialog-buttonset']"));

            Browser.SendKeysTo(CountryName, "Nepal", false);
            Browser.SendKeysTo(Comment, "Test Comment", false);
            Thread.Sleep(Timings.Default_ms * 10);

            using (var db = new AjourBTForTestContext())
            {
                beforeAddCountry = db.Countries.Count();
                Browser.ClickOnWebElement(saveBtn);
                afterAddCountry = db.Countries.Count();
            }
            Browser.Refresh();
            Thread.Sleep(Timings.Default_ms * 20);
            Assert.AreEqual(beforeAddCountry, afterAddCountry);
        }
예제 #15
0
        public void EditGreeting_InValidInput_ValidationErrors()
        {
            List <Greeting> listBeforeAdd = new List <Greeting>();

            using (AjourBTForTestContext db = new AjourBTForTestContext())
            {
                listBeforeAdd = (from d in db.Greetings.AsEnumerable() select d).ToList();
            }
            Browser.Refresh();
            Browser.ClickByXPath("//*[@id='GreetingData']/table/tbody/tr[2]/td/a");

            Assert.AreEqual(Browser.GetText("//*[@id='ui-dialog-title-Edit Greeting']"), "Edit Greeting");
            Assert.AreEqual(Browser.GetText("//*[@id='editGreetingForm']/fieldset/table/tbody/tr[1]/td[1]/label"), "GreetingHeader");
            Assert.AreEqual(Browser.GetText("//*[@id='editGreetingForm']/fieldset/table/tbody/tr[2]/td[1]/label"), "GreetingBody");
            Browser.SendKeysTo("GreetingHeader", "", true);
            Browser.SendKeys(Browser.FindElementByXPath("//*[@id='GreetingBody']"), "");
            Browser.ClickByXPath("//*[@id='btnSaveGreeting']/span/span");

            List <Greeting> listAfterAdd = new List <Greeting>();

            using (AjourBTForTestContext data = new AjourBTForTestContext())
            {
                listAfterAdd = (from d in data.Greetings.AsEnumerable() select d).ToList();
            }
            Assert.IsTrue(Browser.HasElementByXPath("//*[@id='editGreetingForm']/fieldset/table/tbody/tr[1]/td[2]/span/span"));
            Assert.AreEqual(Browser.GetText("//*[@id='editGreetingForm']/fieldset/table/tbody/tr[1]/td[2]/span/span"), "The GreetingHeader field is required.");
            Assert.AreEqual(listBeforeAdd.Count, listAfterAdd.Count);
        }
예제 #16
0
        public void SickAbsence_Deleted()
        {
            int beforeDeleteSick = 0;
            int afterDeleteSick  = 0;

            TeardownTest();
            LoginAsABM();
            Browser.ClickOnLink("Calendar");
            Thread.Sleep(Timings.Default_ms * 30);
            IWebElement sickAbsence = Browser.FindElementByXPath("//div[@class='bar ganttViolet'][@dayfrom='" + todayDateMillisecondsFromEpoch + "'][@dayto='" + todayDatePlus14DaysMillisecondsFromEpoch + "']");

            Browser.ClickOnWebElement(sickAbsence);

            Thread.Sleep(Timings.Default_ms * 15);
            using (var db = new AjourBTForTestContext())
            {
                beforeDeleteSick = db.Sicknesses.Count();
                IWebElement Delete = Browser.FindElementByXPath("//a[@id='Delete']");
                Browser.ClickOnWebElement(Delete);
                Thread.Sleep(Timings.Default_ms * 20);
                afterDeleteSick = db.Sicknesses.Count();
            }
            Thread.Sleep(Timings.Default_ms * 20);
            TeardownTest();
            Setup();
            Thread.Sleep(Timings.Default_ms * 20);
            Assert.Less(afterDeleteSick, beforeDeleteSick);
            IWebElement deletedElem = Browser.FindElementByXPath("//div[@class='bar ganttViolet'][@dayfrom='" + todayDateMillisecondsFromEpoch + "'][@dayto='" + todayDatePlus14DaysMillisecondsFromEpoch + "']");
        }
예제 #17
0
        public void EditGreetingForm_DeleteButton_DeleteConfirm()
        {
            List <Greeting> listBeforeDelete = new List <Greeting>();

            using (AjourBTForTestContext db = new AjourBTForTestContext())
            {
                listBeforeDelete = (from d in db.Greetings.AsEnumerable() select d).ToList();
            }
            Browser.Refresh();
            Browser.ClickByXPath("//*[@id='GreetingData']/table/tbody/tr[2]/td/a");

            Assert.AreEqual(Browser.GetText("//*[@id='ui-dialog-title-Edit Greeting']"), "Edit Greeting");
            Assert.AreEqual(Browser.GetText("//*[@id='editGreetingForm']/fieldset/table/tbody/tr[1]/td[1]/label"), "GreetingHeader");
            Assert.AreEqual(Browser.GetText("//*[@id='editGreetingForm']/fieldset/table/tbody/tr[2]/td[1]/label"), "GreetingBody");

            Browser.ClickByXPath("//*[@id='btnDeleteGreeting']/span/span");
            Assert.IsTrue(Browser.HasElementByXPath("//*[@id='ui-dialog-title-deleteGreeting-Confirm']"));
            Assert.IsTrue(Browser.HasElementByXPath("//*[@id='btnCancelDeleteGreeting']/span/span"));
            Assert.IsTrue(Browser.HasElementByXPath("//*[@id='OKDelete']/span/span"));
            Browser.ClickByXPath("//*[@id='OKDelete']/span/span");

            List <Greeting> listAfterDelete = new List <Greeting>();

            using (AjourBTForTestContext data = new AjourBTForTestContext())
            {
                listAfterDelete = (from d in data.Greetings.AsEnumerable() select d).ToList();
            }
            Assert.AreEqual(listBeforeDelete.Count - 1, listAfterDelete.Count);
        }
예제 #18
0
        public void OvertimesForReclaim_Deleted()
        {
            int beforeDeleteOvertimeForReclaim = 0;
            int afterdeleteOvertimeForReclaim  = 0;

            TeardownTest();
            LoginAsABM();
            Browser.ClickOnLink("Calendar");
            Thread.Sleep(Timings.Default_ms * 30);

            IWebElement overtimeForReclaim = Browser.FindElementByXPath("//div[@class='bar ganttMagenta'][@dayfrom='" + todayDatePlus14DaysMillisecondsFromEpoch + "'][@dayto='" + todayDatePlus14DaysMillisecondsFromEpoch + "']");

            Browser.ClickOnWebElement(overtimeForReclaim);

            Thread.Sleep(Timings.Default_ms * 20);
            using (var db = new AjourBTForTestContext())
            {
                beforeDeleteOvertimeForReclaim = db.Overtimes.Count(o => o.Type == OvertimeType.Paid);
                IWebElement Delete = Browser.FindElementByXPath("//a[@id='Delete']");
                Browser.ClickOnLink("Delete");
                Thread.Sleep(Timings.Default_ms * 20);
                Browser.Refresh();
                Thread.Sleep(Timings.Default_ms * 30);
                afterdeleteOvertimeForReclaim = db.Overtimes.Count(o => o.Type == OvertimeType.Paid);
            }
            Thread.Sleep(Timings.Default_ms * 20);
            TeardownTest();
            Thread.Sleep(Timings.Default_ms * 20);
            Setup();
            Thread.Sleep(Timings.Default_ms * 30);
            Assert.Less(afterdeleteOvertimeForReclaim, beforeDeleteOvertimeForReclaim);
            IWebElement deletedElem = Browser.FindElementByXPath("//div[@class='bar ganttMagenta'][@dayfrom='" + todayDatePlus14DaysMillisecondsFromEpoch + "'][@dayto='" + todayDatePlus14DaysMillisecondsFromEpoch + "'][@data_id='45']");
        }
예제 #19
0
        public void AddGreeting_ValidInput_CanCreateGreeting()
        {
            List <Greeting> listBeforeAdd = new List <Greeting>();

            using (AjourBTForTestContext db = new AjourBTForTestContext())
            {
                listBeforeAdd = (from d in db.Greetings.AsEnumerable()   select d).ToList();
            }
            Browser.Refresh();
            Browser.ClickByXPath("//*[@id='CreateGreeting']/span/span");

            Assert.AreEqual(Browser.GetText("//*[@id='ui-dialog-title-Create Greeting']"), "Create Greeting");
            Assert.AreEqual(Browser.GetText("//*[@id='createGreetingForm']/fieldset/table/tbody/tr[1]/td[1]/label"), "GreetingHeader");
            Assert.AreEqual(Browser.GetText("//*[@id='createGreetingForm']/fieldset/table/tbody/tr[2]/td[1]/label"), "GreetingBody");
            Browser.SendKeysTo("GreetingHeader", "AddedGreeting", false);
            Browser.SendKeys(Browser.FindElementByXPath("//*[@id='GreetingBody']"), "Be happy!");
            Browser.ClickByXPath("/html/body/div[3]/div[11]/div/button/span");

            List <Greeting> listAfterAdd = new List <Greeting>();

            using (AjourBTForTestContext data = new AjourBTForTestContext())
            {
                listAfterAdd = (from d in data.Greetings.AsEnumerable() select d).ToList();
            }
            Assert.IsTrue(Browser.HasElement("AddedGreeting"));
            Assert.AreEqual(listBeforeAdd.Count + 1, listAfterAdd.Count);
        }
예제 #20
0
        public void OvertimeReclaimedOvertime_Deleted()
        {
            int beforeDeleteReclaimedOvertime = 0;
            int afterDeleteReclaimedOvertime  = 0;

            TeardownTest();
            LoginAsABM();
            Browser.ClickOnLink("Calendar");
            Thread.Sleep(Timings.Default_ms * 30);
            IWebElement reclaimedOvertime = Browser.FindElementByXPath("//div[@class='bar ganttOrange'][@dayfrom='" + todayDateMillisecondsFromEpoch + "'][@dayto='" + todayDateMillisecondsFromEpoch + "']");

            Browser.ClickOnWebElement(reclaimedOvertime);

            Thread.Sleep(Timings.Default_ms * 20);
            using (var db = new AjourBTForTestContext())
            {
                beforeDeleteReclaimedOvertime = db.CalendarItems.Count();
                IWebElement Delete = Browser.FindElementByXPath("//a[@id='Delete']");
                Browser.ClickOnWebElement(Delete);
                Thread.Sleep(Timings.Default_ms * 20);
                afterDeleteReclaimedOvertime = db.CalendarItems.Count();
            }
            Thread.Sleep(Timings.Default_ms * 20);
            TeardownTest();
            Setup();
            Thread.Sleep(Timings.Default_ms * 20);

            Assert.Less(afterDeleteReclaimedOvertime, beforeDeleteReclaimedOvertime);
            IWebElement deletedElem = Browser.FindElementByXPath("//div[@class='bar ganttOrange'][@dayfrom='" + todayDateMillisecondsFromEpoch + "'][@dayto='" + todayDateMillisecondsFromEpoch + "']");
        }
예제 #21
0
        public void CreateQuestionnaire_AddCuestionnaire()
        {
            using (AjourBTForTestContext context = new AjourBTForTestContext())
            {
                List <Questionnaire> questionnaireList = context.Questionnaire.ToList();
                IReadOnlyCollection <IWebElement> questionnairesCollection = Browser.FindElementsByXPath("//a[@class='questionTitle']");

                Assert.AreEqual(questionnaireList.Count, questionnairesCollection.Count);

                Browser.ClickByXPath("//*[@id='addQuestionnaireButton']/span");
                Browser.SendKeys(Browser.FindElementByXPath("//*[@id='createQuestionnaireTable']/tbody/tr[1]/td/input"), "New Questionnaire");
                Thread.Sleep(Timings.Default_ms * 10);
                Browser.ClickByXPath("//*[@id='addQuestionnaire']");
                Thread.Sleep(Timings.Default_ms * 20);

                using (AjourBTForTestContext context2 = new AjourBTForTestContext())
                {
                    List <Questionnaire> questionnaireListAfterAdd = context.Questionnaire.ToList();
                    IReadOnlyCollection <IWebElement> questionnairesCollectionAfterAdd = Browser.FindElementsByXPath("//a[@class='questionTitle']");

                    Assert.AreEqual(questionnaireListAfterAdd.Count, questionnairesCollectionAfterAdd.Count);
                    Assert.Greater(questionnaireListAfterAdd.Count, questionnaireList.Count);
                    Assert.Greater(questionnairesCollectionAfterAdd.Count, questionnairesCollection.Count);
                }
            }
        }
예제 #22
0
        public void TableData()
        {
            int selectedYear = DateTime.Now.ToLocalTimeAzure().Year;

            Browser.Refresh();
            Thread.Sleep(Timings.Default_ms * 10);
            Browser.ClickOnLink("BTs by Quarters");
            Thread.Sleep(Timings.Default_ms * 20);
            int year = DateTime.Now.ToLocalTimeAzure().Year;

            using (AjourBTForTestContext db = new AjourBTForTestContext())
            {
                List <Employee> employeeBts = (from e in db.Employees.AsEnumerable()
                                               where e.IsUserOnly == false
                                               select e).ToList();

                Employee empBT = employeeBts.FirstOrDefault();
                if (empBT != null)
                {
                    ReadOnlyCollection <IWebElement> empTable = Browser.FindElementsByXPath("//*[@id='BTsInQuarterForViewerexample']/tbody/tr");
                    Thread.Sleep(Timings.Default_ms * 20);

                    foreach (var element in empTable)
                    {
                        if (element.Text.Contains(empBT.EID))
                        {
                            Assert.IsTrue(element.Text.Contains(empBT.FirstName));
                            Assert.IsTrue(element.Text.Contains(empBT.LastName));
                        }
                    }
                    Assert.AreEqual(employeeBts.Count, empTable.Count());
                }
            }
        }
예제 #23
0
        public void TryDeleteUnit_Deleted()
        {
            int unitsCountBefore, unitsCountAfter;

            using (AjourBTForTestContext dbContext = new AjourBTForTestContext())
            {
                unitsCountBefore = dbContext.Units.Count();
            }

            Browser.ClickByXPath("/html/body/div[1]/div/div[6]/div/table/tbody/tr[7]/td[1]/a");
            Thread.Sleep(Timings.Default_ms * 10);

            Assert.AreEqual("Edit Unit", Browser.FindElementByXPath("//*[@id='ui-dialog-title-Edit Unit']").Text);
            Assert.AreEqual("ShortTitle", Browser.FindElementByXPath("/html/body/div[3]/div[2]/form[1]/fieldset/table/tbody/tr[1]/td[1]/label").Text);
            Assert.AreEqual("Title", Browser.FindElementByXPath("/html/body/div[3]/div[2]/form[1]/fieldset/table/tbody/tr[2]/td[1]/label").Text);

            Browser.ClickByXPath("/html/body/div[3]/div[2]/form[2]/div/button");
            Thread.Sleep(Timings.Default_ms * 10);
            Assert.IsTrue(Browser.FindElementByXPath("/html/body/div[5]/div[1]/span").Text.Contains("Delete"));
            Assert.AreEqual("OK", Browser.FindElementByXPath("/html/body/div[5]/div[3]/div/button[1]").Text);
            Assert.AreEqual("Cancel", Browser.FindElementByXPath("/html/body/div[5]/div[3]/div/button[2]").Text);
            Browser.ClickByXPath("/html/body/div[5]/div[3]/div/button[1]");
            Thread.Sleep(Timings.Default_ms * 10);

            IWebElement positionsTable = Browser.FindElementByXPath("//*[@id='UnitData']/table");

            Assert.AreEqual(unitsCountBefore, positionsTable.FindElements(By.TagName("tr")).Count());
            using (AjourBTForTestContext dbContext = new AjourBTForTestContext())
            {
                unitsCountAfter = dbContext.Units.Count();
            }
            Assert.AreEqual(unitsCountAfter + 1, unitsCountBefore);
        }
예제 #24
0
        public void CheckJourneys()
        {
            ReadOnlyCollection <IWebElement> daysFromBtTable = Browser.FindElementsByXPath("//tbody[@id='tbodyJourneys']/tr");

            foreach (IWebElement tableElement in daysFromBtTable)
            {
                ReadOnlyCollection <IWebElement> daysFromBtTableTD = tableElement.FindElements(By.CssSelector("td"));
                string empFromTable = daysFromBtTableTD[2].Text;

                using (var db = new AjourBTForTestContext())
                {
                    Employee emp = db.Employees.Where(e => e.EID == empFromTable).FirstOrDefault();

                    List <Journey> journeys = (from bts in db.BusinessTrips where
                                               bts.EmployeeID == emp.EmployeeID && bts.Journeys.Count > 0
                                               from journ in bts.Journeys
                                               where journ.DayOff == true
                                               select journ).ToList();

                    if (journeys != null)
                    {
                        foreach (Journey j in journeys)
                        {
                            Assert.IsTrue(daysFromBtTableTD[3].Text.Contains(j.Date.ToString(String.Format("dd.MM.yyyy"))));
                        }
                    }
                }
            }
        }
예제 #25
0
        public void BtsByUnits_TableRows()
        {
            //Arrange
            using (AjourBTForTestContext db = new AjourBTForTestContext()){
                BusinessTrip employeeBt = (from bt in db.BusinessTrips.AsEnumerable()
                                           where (bt.Status == BTStatus.Cancelled || bt.Status == (BTStatus.Confirmed | BTStatus.Modified) || bt.Status == (BTStatus.Confirmed | BTStatus.Reported)) && bt.StartDate.Year == DateTime.Now.ToLocalTimeAzure().Year
                                           orderby bt.UnitID
                                           select bt).FirstOrDefault();

                //Act

                //Assert
                Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[1]/td[1]"), employeeBt.UnitID.ToString());
                Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[1]/td[2]"), employeeBt.BTof.EID);
                Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[1]/td[3]"), String.Format(employeeBt.BTof.LastName + " " + employeeBt.BTof.FirstName));
                Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[1]/td[4]"), employeeBt.Location.Title);
                Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[1]/td[7]"), employeeBt.Unit.ShortTitle.ToString());
                Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[1]/td[8]"), employeeBt.Purpose);
                Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[1]/td[9]"), employeeBt.Manager);
                Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[1]/td[10]"), employeeBt.Responsible);
            }
            //Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[1]/td[1]"), "1");
            //Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[2]/td[2]"), "swhe");
            //Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[2]/td[3]"), "Harper Earl");
            //Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[2]/td[4]"), "RB/MA");
            //Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[2]/td[7]"), "-");
            //Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[2]/td[8]"), "Meeting");
            //Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[2]/td[9]"), "ncru");
            //Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[2]/td[10]"), "mter");
        }
예제 #26
0
        public void CheckOvertimes()
        {
            ReadOnlyCollection <IWebElement> daysFromBtTable = Browser.FindElementsByXPath("//tbody[@id='tbodyJourneys']/tr");

            foreach (IWebElement tableElement in daysFromBtTable)
            {
                ReadOnlyCollection <IWebElement> daysFromBtTableTD = tableElement.FindElements(By.CssSelector("td"));
                string empFromTable = daysFromBtTableTD[2].Text;

                using (var db = new AjourBTForTestContext())
                {
                    Employee emp = db.Employees.Where(e => e.EID == empFromTable).FirstOrDefault();

                    List <Overtime> overtimes = (from over in db.Overtimes
                                                 where
                                                 over.Type == OvertimeType.Paid && over.EmployeeID == emp.EmployeeID
                                                 select over).ToList();

                    if (overtimes != null)
                    {
                        foreach (Overtime o in overtimes)
                        {
                            Assert.IsTrue(daysFromBtTableTD[3].Text.Contains(o.Date.ToString(String.Format("dd.MM.yyyy"))));
                        }
                    }
                }
            }
        }
예제 #27
0
        public void PrivateTripAdd()
        {
            int beforeAddPrivateTrip = 0;
            int afterAddPrivateTrip  = 0;

            Thread.Sleep(Timings.Default_ms * 30);
            empList = Browser.FindElementsByXPath("//tr[contains(@class,'zebra')]");

            IWebElement addBtn = empList[0].FindElement(By.XPath("//a[@id='AddPrivateTrip']"));

            Browser.ClickOnWebElement(addBtn);

            Thread.Sleep(Timings.Default_ms * 20);
            Tools.ClickOnTwoDatePickers(Browser.webDriver, Browser.wait(10));

            IWebElement saveBtn = Browser.FindElementByXPath("//button[@id='btnSavePrivateTrip']");

            using (var db = new AjourBTForTestContext())
            {
                beforeAddPrivateTrip = db.PrivateTrips.Count();
                Browser.ClickOnWebElement(saveBtn);
                Thread.Sleep(Timings.Default_ms * 30);
                afterAddPrivateTrip = db.PrivateTrips.Count();
            }

            empList = Browser.FindElementsByXPath("//tbody[@id='PTViewBody']/tr[contains(@class,'zebra')]");

            Assert.Less(beforeAddPrivateTrip, afterAddPrivateTrip);
            Assert.IsTrue(empList[0].Text.Contains(Tools.TestDate));
        }
예제 #28
0
        public void EditFinished_EditFlightsConfirmed()
        {
            int selectedYear = DateTime.Now.ToLocalTimeAzure().Year;

            Browser.Refresh();
            Thread.Sleep(Timings.Default_ms * 20);
            Browser.ClickOnLink("Finished BTs");
            Thread.Sleep(Timings.Default_ms * 20);
            Browser.ClickByXPath("//*[@id='selectedYear']");
            Browser.ClickByXPath("//*[@id='selectedYear']/option[4]");
            Thread.Sleep(Timings.Default_ms * 20);

            ReadOnlyCollection <IWebElement> empTable = Browser.FindElementsByXPath("//*[@id='exampleBtsViewByDatesPU']/tbody/tr");

            Thread.Sleep(Timings.Default_ms * 20);
            Browser.ClickByXPath("//*[@id='exampleBtsViewByDatesPU']/tbody/tr[1]/td[1]/a");
            Thread.Sleep(Timings.Default_ms * 20);

            Browser.ClickByXPath("//*[@id='FlightsConfirmed']");


            string SaveBTButtonXPath = "/html/body/div[4]/div[2]/form/div/button";

            Browser.ClickByXPath(SaveBTButtonXPath);

            Thread.Sleep(Timings.Default_ms * 20);
            BusinessTrip bt;

            using (AjourBTForTestContext dbContext = new AjourBTForTestContext())
            {
                bt = dbContext.BusinessTrips.Where(b => b.BusinessTripID == 94).FirstOrDefault();
            }
            Assert.IsNotNull(bt);
            Assert.AreEqual(true, bt.FlightsConfirmed);
        }
예제 #29
0
        public void TestDropDownList()
        {
            Dictionary <int, string> magicDictonary = new Dictionary <int, string>(); //<option number in DropDownList, EID>

            magicDictonary.Add(3, "gemu");
            magicDictonary.Add(4, "shne");
            magicDictonary.Add(5, "dago");
            magicDictonary.Add(6, "boon");
            magicDictonary.Add(7, "fekr");
            magicDictonary.Add(8, "moli");
            magicDictonary.Add(9, "lian");

            IWebElement dropDownList = Browser.FindElementByXPath("//select[@id='userDepDropList']");

            Thread.Sleep(Timings.Default_ms * 10);

            using (var db = new AjourBTForTestContext())
            {
                foreach (var item in magicDictonary)
                {
                    Employee emp = db.Employees.Where(e => e.EID == item.Value).FirstOrDefault();
                    Browser.SelectOption("userDepDropList", item.Key);
                    Thread.Sleep(Timings.Default_ms * 20);

                    IWebElement table = Browser.FindElementByXPath("//tbody[@id='userTableBody']/tr");

                    Assert.IsTrue(table.Text.Contains(emp.EID));
                    Assert.IsTrue(table.Text.Contains(emp.FirstName));
                    Assert.IsTrue(table.Text.Contains(emp.LastName));
                }
            }
        }
예제 #30
0
        public void TestEditCountryName()
        {
            Country editedCountry = new Country();

            Thread.Sleep(Timings.Default_ms * 20);
            IWebElement countryToEdit = Browser.FindElementByLinkText("Poland");

            Browser.ClickOnWebElement(countryToEdit);

            Thread.Sleep(Timings.Default_ms * 15);
            IWebElement nameField = Browser.FindElementByXPath("//input[@id='CountryName']");

            Browser.SendKeysTo(nameField, "Polandium", true);
            IWebElement saveBtn = Browser.FindElementByXPath("//button[@id='btnSaveCountry']");

            Browser.ClickOnWebElement(saveBtn);

            Thread.Sleep(Timings.Default_ms * 15);
            using (var db = new AjourBTForTestContext())
            {
                editedCountry = db.Countries.Where(c => c.CountryName == "Polandium").FirstOrDefault();
            }

            string classValue = Browser.FindElementByLinkText("Polandium").GetAttribute("class");

            Assert.IsNotNull(editedCountry);
            Assert.AreEqual("countryEditDialog", classValue);
        }