Esempio n. 1
0
        public void SePerson_signin_sanctioned_worker_fails()
        {
            //Arrange
            var _per = (Web.ViewModel.Person)ViewModelRecords.person.Clone();
            var _wkr = (Web.ViewModel.Worker)ViewModelRecords.worker.Clone();

            _wkr.memberexpirationdate = DateTime.Now.AddYears(1);
            _wkr.dwccardnum           = sharedUI.nextAvailableDwccardnum(frb.ToFactory());
            var _san = (Web.ViewModel.Event)ViewModelRecords.event1.Clone();

            _san.Person      = _per;
            _san.eventTypeID = HttpClientUtil.GetLookup(LCategory.eventtype, "Sanction");
            var _act = (Web.ViewModel.Activity)ViewModelRecords.activity.Clone();

            //Act
            ui.personCreate(_per);
            _wkr.ID = _per.ID;
            ui.workerCreate(_wkr, testimagefile);
            //
            ui.workerSanction(_wkr);
            //
            _san.PersonID = _per.ID;
            ui.eventCreate(_san);
            ui.activityCreate(_act);
            // refactored other test to identify idPrefix-dwccardnum
            ui.activitySignIn(_act.idChild, _wkr.dwccardnum);
            //Assert
            Assert.IsTrue(ui.activitySignInIsSanctioned());
        }
Esempio n. 2
0
        public void SeActivity_unauth_worker_signin()
        {
            // example from ActivityTests.cs -- SeActivity_Create_signin_simple()

            // Arrange

            // creates one activity within the hour
            frb.AddActivity(startTime: DateTime.Now, endTime: DateTime.Now.AddHours(1));

            Random            rand         = new Random();
            int               rowcount     = 1;
            var               workers      = frb.ToFactory().Workers;
            Activity          _act         = (Activity)Records.activity.Clone();
            ActivitySignin    _asi         = (ActivitySignin)Records.activitysignin.Clone();
            IEnumerable <int> cardlist     = frb.ToFactory().Workers.Select(q => q.dwccardnum).Distinct();
            int               firstCardNum = workers.First().dwccardnum;

            // Act
            //ui.activityCreate(_act);
            ui.activityMenuLink(); //Find Activity menu link and click
            var activityRecord   = ui.WaitForElement(By.XPath("//table[@id='activityTable']/tbody/tr[1]"));
            var activityRecordID = Convert.ToInt32(activityRecord.GetAttribute("recordid"));
            var idPrefix         = "asi" + activityRecordID + "-";

            ui.WaitAndDoubleClick(By.XPath("//table[@id='activityTable']/tbody/tr[1]"));
            // ui.activitySignIn("asi" + activityRecordID + "-dwccardnum", firstCardNum);
            ui.activitySignIn(idPrefix, firstCardNum);

            // Assert
            // borrowed from sharedUI.cs -- activitySignInValidate()
            Assert.IsNotNull(ui.WaitForElementValue(By.XPath("//table[@id='asi" + activityRecordID + "-asiTable']/tbody/tr[" + rowcount + "]/td[2]"), firstCardNum.ToString()), "Did not find added record number in signin table");
        }
        public void Create_random_class()
        {
            //Used once to create dummy data to support report creation
            // requires change in app.config to point test database to production
            IEnumerable <int> cardlist  = frb.ToFactory().Workers.Select(q => q.dwccardnum).Distinct().ToList();
            IEnumerable <int> classlist = frb.ToFactory().Lookups.Where(l => l.category == "activityName").Select(q => q.ID).ToList();
            Activity          a         = new Activity();
            //random date, within last 30 days
            Random   rand  = new Random();
            DateTime today = DateTime.Today.AddDays(-rand.Next(40));

            a.dateStart = today.AddHours(7 + rand.Next(5));
            a.dateEnd   = a.dateStart.AddHours(1.5);
            a.nameID    = classlist.ElementAt(rand.Next(classlist.Count()));
            a.typeID    = 101; //type==class
            a.teacher   = "UnitTest script";
            a.notes     = "From Integration_Activity_Service";
            frb.ToServ <IActivityService>().Create(a, "TestScript");
            int rAttendance = rand.Next(cardlist.Count() / 10);

            for (var i = 0; i < rAttendance; i++)
            {
                ActivitySignin asi = (ActivitySignin)Records.activitysignin.Clone();
                asi.dateforsignin = today;
                asi.activityID    = a.ID;
                asi.dwccardnum    = cardlist.ElementAt(rand.Next(cardlist.Count()));
                frb.ToServ <IActivitySigninService>().CreateSignin(asi, "TestScript");
            }
            //a.
        }
        public void getDynamicQuery_test_all_metadata()
        {
            // arrange
            var reports = frb.ToFactory().ReportDefinitions.AsQueryable();

            foreach (var r in reports)
            {
                var result = MacheteAdoContext.getMetadata(r.sqlquery, connectionString);
                Assert.IsTrue(result.Count > 2);
            }
            // act
            // assert
        }
Esempio n. 5
0
        public void getDynamicQuery_test_all_metadata()
        {
            // arrange
            var context = frb.ToFactory().Get();
            var reports = frb.ToRepoReports().GetAllQ();

            foreach (var r in reports)
            {
                var result = SqlServerUtils.getMetadata(context, r.sqlquery);
                Assert.IsTrue(result.Count > 2);
            }
            // act
            // assert
        }
Esempio n. 6
0
        public void ExpireMembers_expires_1_active()
        {
            //Arrange
            frb.AddWorker(status: Worker.iActive, skill1: 62, memberexpirationdate: DateTime.Now.AddDays(-1));
            var _w = frb.ToWorker();

            //Act
            frb.ToServ <IWorkerService>().ExpireMembers();
            IEnumerable <Worker> result = frb.ToFactory().Get().Workers.AsEnumerable()
                                          .Where(p => p.memberStatusID == Worker.iExpired && p.dwccardnum == _w.dwccardnum);

            //Assert
            Assert.AreEqual(1, result.Count(), "Failed to expire members");
            Assert.AreEqual("Expired", result.First().memberStatusEN, "Failed to set expiration text");
        }
Esempio n. 7
0
        public void SePerson_signin_sanctioned_worker_fails()
        {
            //Arrange
            Person _per = (Person)Records.person.Clone();
            Worker _wkr = (Worker)Records.worker.Clone();

            _wkr.memberexpirationdate = DateTime.Now.AddYears(1);
            _wkr.dwccardnum           = sharedUI.nextAvailableDwccardnum(frb.ToFactory().Get());
            Event _san = (Event)Records.event1.Clone();

            _san.Person      = _per;
            _san.eventTypeID = MacheteLookup.cache.First(x => x.category == "eventtype" && x.text_EN == "Sanction").ID;
            Activity _act = (Activity)Records.activity.Clone();

            //Act
            ui.personCreate(_per);
            _wkr.ID = _per.ID;
            ui.workerCreate(_wkr, testimagefile);
            //
            ui.workerSanction(_wkr);
            //
            _san.PersonID = _per.ID;
            ui.eventCreate(_san);
            ui.activityCreate(_act);
            // refactored other test to identify idPrefix-dwccardnum
            ui.activitySignIn(_act.idChild, _wkr.dwccardnum);
            //Assert
            Assert.IsTrue(ui.activitySignInIsSanctioned());
        }
Esempio n. 8
0
        public void Integration_Queryable_test()
        {
            // Arrange - load test records
            var worker = frb.AddWorkerSignin().ToWorker();
            var signin = frb.ToWorkerSignin();
            // Act
            var q = frb.ToFactory().Get().WorkerSignins.AsQueryable();

            q = q.Where(r => r.dwccardnum == signin.dwccardnum &&
                        DbFunctions.DiffDays(r.dateforsignin, signin.dateforsignin) == 0 ? true : false);
            WorkerSignin result = q.FirstOrDefault();

            // Assert
            Assert.IsNotNull(result.ID);
            Assert.AreEqual(result.WorkerID, worker.ID);
            Assert.AreEqual(result.dwccardnum, worker.dwccardnum);
        }
Esempio n. 9
0
        public void activity_getUnassociated()
        {
            //Arrange
            var worker = frb.ToWorker();

            frb.AddActivity().AddActivity();
            frb.AddActivitySignin(worker: worker);

            IQueryable <Activity> q = frb.ToFactory().Get().Activities;
            var count = q.Count();

            //Act
            IndexViewBase.getUnassociated(worker.ID, ref q, frb.ToFactory().Get());
            //Assert
            var result = q.ToList();

            Assert.AreEqual(count - 1, result.Count());
        }
Esempio n. 10
0
        public void MacheteReportDefinitions_Initialize_counts_match()
        {
            // Arrange - load test records
            var context = frb.ToFactory().Get();

            context.Database.ExecuteSqlCommand("TRUNCATE TABLE ReportDefinitions");
            var cache = Machete.Data.MacheteReportDefinitions.cache;
            var count = cache.Count();

            // Act
            Machete.Data.MacheteReportDefinitions.Initialize(context);
            var result = frb.ToRepoReports().GetAllQ().Count();

            // Assert
            Assert.AreEqual(count, result, "static cache and DB report definitions' count not equal");
        }
Esempio n. 11
0
 public void TestInitialize()
 {
     frb = new FluentRecordBase();
     frb.ToFactory();
     dOptions = new viewOptions
     {
         CI              = new CultureInfo("en-US", false),
         sSearch         = "",
         date            = DateTime.Today,
         dwccardnum      = null,
         woid            = null,
         orderDescending = false,
         sortColName     = "WOID",
         displayStart    = 0,
         displayLength   = 20
     };
 }
Esempio n. 12
0
 public void TestInitialize()
 {
     frb = new FluentRecordBase();
     // populates domain constants
     cache = new LookupCache(frb.ToFactory()); //Func<> to DB Factory
 }
Esempio n. 13
0
        public void SeActivity_Create_ManySignins()
        {
            //Arrange
            int    rowcount = 1;
            Random rand     = new Random();

            if (frb.ToFactory().Workers.Select(q => q.dwccardnum).Distinct().Count() <= 10)
            {
                frb.AddWorker();
            }
            //
            //
            IEnumerable <int> list = frb.ToFactory().Workers.Select(q => q.dwccardnum).Distinct().ToList();
            var count               = list.Count();
            int numberOfSignins     = rand.Next(count / 10) + 1; //+1 will never lead to zero here
            int numberSignedIn      = numberOfSignins;
            IEnumerable <int> list1 = list.Take <int>(numberOfSignins);
            var _act = (Web.ViewModel.Activity)ViewModelRecords.activity.Clone();

            //Act
            ui.activityCreate(_act);
            var idPrefix = "asi" + _act.ID + "-";

            for (var i = 0; i < numberOfSignins; i++)
            {
                int cardNum = list1.ElementAt(i);
                ui.activitySignIn(idPrefix, cardNum);
                Thread.Sleep(1000);//prevent race condition
                if (ui.activitySignInIsSanctioned())
                {
                    --numberSignedIn;
                    continue;
                }

                //Assert
                Thread.Sleep(1000);//prevent race condition
                Assert.IsTrue(ui.activitySignInValidate(idPrefix, cardNum, rowcount), "Sign in for worker " + i + " with cardNum " + cardNum + " failed!");

                //This line ensures the test doesn't break if we try to sign in an ID that has multiple workers attached to it.
                //rowcount increments by the number of records found in the database matching that cardNum
                rowcount += frb.ToFactory().Workers.Where(q => q.dwccardnum == cardNum).Count();
            }
            ui.WaitThenClickElement(By.Id("activityListTab"));
            //ui.SelectOption(By.XPath("//*[@id='activityTable_length']/label/select"), "100");

            //Assert

            // Chaim 4/2/2014
            // This isn't working because I disabled auto-reload. It was making
            // the table appear strangely when I disabled pagination. I did that
            // because pagination was unpopular with users.

            // Todo: Either make auto-reload work or find another way of reloading
            // the page.

            //Locate record within activitylist datatable and compare the count (column 4) with numberSignedIn
            Assert.AreEqual(numberSignedIn.ToString(), ui.WaitForElement(By.XPath("//table[@id='activityTable']/tbody/tr[@recordid='" + _act.ID + "']/td[4]")).Text);

            //walk through pagination to search for recordid
            //var activityRecordCount = "what";
            //bool tableRecordMatch = false;
            //while (tableRecordMatch == false) {
            //    if (ui.WaitForElementExists(By.XPath("//table[@id='activityTable']/tbody/tr[@recordid='" + _act.ID + "']"))) {
            //        tableRecordMatch = true;
            //        activityRecordCount = ui.WaitForElement(By.XPath("//table[@id='activityTable']/tbody/tr[@recordid='" + _act.ID + "']/td[4]")).Text;
            //    } else {
            //check for #activityTable_next.paginate_disabled_next
            //Assert.IsTrue(ui.WaitThenClickElement(By.CssSelector("#activityTable_next.paginate_enabled_next")), "Could not locate record in table pagination");
            //}
            //}

            //Assert.AreEqual(numberSignedIn.ToString(), activityRecordCount);
        }