Пример #1
0
 public void SetupTest()
 {
     TaskListT.ClearTaskListTable();
     TaskT.ClearTaskTable();
     TaskSubscriptionT.ClearTaskSubscriptionTable();
     SignalodT.ClearSignalodTable();
     _taskListParent     = TaskListT.CreateTaskList(descript: "TaskListParent");
     _taskListChild      = TaskListT.CreateTaskList(descript: "TaskListChild", parent: _taskListParent.TaskListNum, parentDesc: _taskListParent.Descript);
     _taskListGrandchild = TaskListT.CreateTaskList(descript: "TaskListGrandchild", parent: _taskListChild.TaskListNum,
                                                    parentDesc: _taskListChild.Descript);
     _task = TaskT.CreateTask(_taskListGrandchild.TaskListNum, descript: "Test Task", fromNum: Security.CurUser.UserNum); //Starts in _taskListGrandchild
     Security.CurUser.TaskListInBox = _taskListParent.TaskListNum;                                                        //Set inbox for current user to _taskListParent.
     try {
         Userods.Update(Security.CurUser);
     }
     catch {
         Assert.Fail("Failed to update current user task list inbox.");                //Error updating user.
     }
     _userControlTasksInstance = new UserControlTasks();
     _userControlTasksAccessor = new PrivateObject(_userControlTasksInstance);
     //Artificially set that we are viewing _listTaskListParent.
     _userControlTasksAccessor.SetField("_listTaskListTreeHistory", new List <TaskList>()
     {
         _taskListParent
     });
     _userControlTasksAccessor.SetField("_dictTaskLists", new Dictionary <long, TaskList>());
 }
Пример #2
0
        ///<summary>User clicks "OK" after having not made any changes to the Task.</summary>
        public void FormTaskEdit_butOK_NoChange()
        {
            _formTaskEditAccessor.SetField("_taskCur", _task);
            _formTaskEditAccessor.SetField("_taskOld", _task.Copy());
            _formTaskEditAccessor.Invoke("butOK_Click", new object(), new EventArgs());
            List <Signalod> listSignals = SignalodT.GetAllSignalods();

            Assert.AreEqual(0, listSignals.Count);           //No signals sent.
        }
Пример #3
0
        ///<summary>Correct signals are sent when user completes a TaskNote edit operation after adding a new TaskNote.</summary>
        public void FormTaskEdit_OnNoteEditComplete_Add()
        {
            _formTaskEditAccessor.Invoke("OnNoteEditComplete_Add", new object());
            List <Signalod> listSignals = SignalodT.GetAllSignalods();

            Assert.AreEqual(3, listSignals.Count);
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskPopup && x.FKeyType == KeyType.Task && x.FKey == _task.TaskNum));
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskList && x.FKeyType == KeyType.Undefined && x.FKey == _task.TaskListNum));
        }
Пример #4
0
        ///<summary>Context menu right-click and select the "Done" option.</summary>
        public void UserControlTasks_Done_Clicked()
        {
            _userControlTasksAccessor.SetField("_clickedTask", _task);   //Directly set which task is clicked.
            _userControlTasksAccessor.Invoke("Done_Clicked");            //Context menu "Done" option click.
            List <Signalod> listSignals = SignalodT.GetAllSignalods();

            OpenDentBusiness.Task taskDb = Tasks.GetOne(_task.TaskNum);
            Assert.AreEqual(1, listSignals.Count);
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.Task && x.FKeyType == KeyType.Task && x.FKey == _task.TaskNum));
            Assert.AreEqual(TaskStatusEnum.Done, taskDb.TaskStatus);
        }
Пример #5
0
        ///<summary>Correct signals are sent when user deletes a Task using "Delete" button, and Task is no longer in database.</summary>
        public void FormTaskEdit_butDelete_Click()
        {
            _formTaskEditAccessor.SetField("IsNew", true);           //Causes butDelete_Click to skip UI interaction.
            _formTaskEditAccessor.Invoke("butDelete_Click", new object(), new EventArgs());
            List <Signalod> listSignals = SignalodT.GetAllSignalods();

            Assert.AreEqual(2, listSignals.Count);
            OpenDentBusiness.Task task = Tasks.GetOne(_task.TaskNum);
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskList && x.FKeyType == KeyType.Undefined && x.FKey == _task.TaskListNum));
            Assert.IsNull(task);
        }
Пример #6
0
        ///<summary>Correct signals are sent when changing the TaskList of the Task.</summary>
        public void FormTaskEdit_SendSignalsRefillLocal_ChangeTaskListNum()
        {
            _task.TaskListNum = _taskListGrandchild.TaskListNum;
            long newTaskListNum = _taskListParent.TaskListNum;

            _formTaskEditAccessor.Invoke("SendSignalsRefillLocal", _task, newTaskListNum, true);
            List <Signalod> listSignals = SignalodT.GetAllSignalods();

            Assert.AreEqual(3, listSignals.Count);                                                                                                     //Only one signal sent.
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskList && x.FKeyType == KeyType.Undefined && x.FKey == newTaskListNum));    //new TL
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskList && x.FKeyType == KeyType.Undefined && x.FKey == _task.TaskListNum)); //old TL
        }
Пример #7
0
        ///<summary>Context menu right-click and select the "Mark Read" with TaskNewTrackedByUser preference turned on.</summary>
        public void UserControlTasks_MarkRead_TasksNewTrackedByUser()
        {
            Prefs.UpdateBool(PrefName.TasksNewTrackedByUser, true);        //TaskNewTrackedByUser=true;
            TaskUnreads.SetUnread(Security.CurUser.UserNum, _task);        //Set the task to unread for our user.
            _userControlTasksAccessor.Invoke("MarkRead", _task);           //TaskNewTrackedByUser=false;
            List <Signalod> listSignals = SignalodT.GetAllSignalods();

            Assert.AreEqual(1, listSignals.Count);
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.Task && x.FKeyType == KeyType.Task &&
                                             x.FKey == _task.TaskNum));//Signal for _task.
            Assert.IsFalse(_task.IsUnread);
        }
Пример #8
0
        ///<summary>Context menu right-click and select the "Mark Read" with TaskNewTrackedByUser preference turned off.</summary>
        public void UserControlTasks_MarkRead()
        {
            Prefs.UpdateBool(PrefName.TasksNewTrackedByUser, false);           //TaskNewTrackedByUser=false;
            _userControlTasksAccessor.Invoke("MarkRead", _task);
            List <Signalod> listSignals = SignalodT.GetAllSignalods();

            Assert.AreEqual(1, listSignals.Count);
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.Task && x.FKeyType == KeyType.Task &&
                                             x.FKey == _task.TaskNum));//Signal for _task.
            OpenDentBusiness.Task taskDb = Tasks.GetOne(_task.TaskNum);
            Assert.AreEqual(TaskStatusEnum.Viewed, taskDb.TaskStatus);
        }
Пример #9
0
        ///<summary>Correct signals are sent when changing the Object of the Task from non Patient to a Patient.</summary>
        public void FormTaskEdit_SendSignalsRefillLocal_ChangeFromNoPatientObjectToPatient()
        {
            _formTaskEditAccessor.SetField("_patientPatNum", 0);           //No patient object on load.
            long patNum = 1;

            _task.KeyNum     = patNum;
            _task.ObjectType = TaskObjectType.Patient;
            _formTaskEditAccessor.Invoke("SendSignalsRefillLocal", _task, _task.TaskListNum, true);
            List <Signalod> listSignals = SignalodT.GetAllSignalods();

            Assert.AreEqual(3, listSignals.Count);                                                                                                     //Two signals sent.
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskList && x.FKeyType == KeyType.Undefined && x.FKey == _task.TaskListNum)); //current TL
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskPatient && x.FKeyType == KeyType.Undefined && x.FKey == patNum));         //new Patient
        }
Пример #10
0
        ///<summary>If a note was added to a Done task and the user hits "Cancel", the task status is set to Viewed because the note is still there and the task didn't move lists.</summary>
        public void FormTaskEdit_FormTaskEdit_FormClosing_Cancel()
        {
            _task.TaskStatus = TaskStatusEnum.Done;
            _formTaskEditAccessor.SetField("_taskCur", _task);
            _formTaskEditAccessor.SetField("_taskOld", _task.Copy());
            Tasks.Update(_task);
            _formTaskEditAccessor.SetField("NotesChanged", true);
            _formTaskEditAccessor.Invoke("FormTaskEdit_FormClosing", new object(), new FormClosingEventArgs(CloseReason.UserClosing, false));
            List <Signalod> listSignals = SignalodT.GetAllSignalods();

            Assert.AreEqual(3, listSignals.Count);
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskPopup && x.FKeyType == KeyType.Task && x.FKey == _task.TaskNum));
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskList && x.FKeyType == KeyType.Undefined && x.FKey == _task.TaskListNum));
        }
Пример #11
0
        ///<summary>Correct signals are sent when changing the UserNum of the Task.</summary>
        public void FormTaskEdit_SendSignalsRefillLocal_ChangeUser()
        {
            long oldUserNum = Security.CurUser.UserNum;

            _formTaskEditAccessor.SetField("_userNumFrom", oldUserNum);
            _task.UserNum = Security.CurUser.UserNum + 1;
            _formTaskEditAccessor.Invoke("SendSignalsRefillLocal", _task, _task.TaskListNum, true);
            List <Signalod> listSignals = SignalodT.GetAllSignalods();

            Assert.AreEqual(4, listSignals.Count);                                                                                                     //Three signals sent.
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskList && x.FKeyType == KeyType.Undefined && x.FKey == _task.TaskListNum)); //current TL
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskAuthor && x.FKeyType == KeyType.Undefined && x.FKey == oldUserNum));      //old User
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskAuthor && x.FKeyType == KeyType.Undefined && x.FKey == _task.UserNum));   //new User
        }
Пример #12
0
        ///<summary>Context menu right-click and select the "Send to Me" option.</summary>
        public void UserControlTasks_SendToMe_Clicked()
        {
            _userControlTasksAccessor.SetField("_clickedTask", _task);
            _userControlTasksAccessor.Invoke("SendToMe_Clicked", false);
            List <Signalod> listSignals = SignalodT.GetAllSignalods();

            Assert.AreEqual(3, listSignals.Count);
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskList && x.FKeyType == KeyType.Undefined &&
                                             x.FKey == _taskListGrandchild.TaskListNum)); //Signal for source taskList.
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskList && x.FKeyType == KeyType.Undefined &&
                                             x.FKey == _taskListParent.TaskListNum));     //Signal for destination taskList.
            OpenDentBusiness.Task taskDb = Tasks.GetOne(_task.TaskNum);
            Assert.AreEqual(taskDb.TaskListNum, _taskListParent.TaskListNum);             //Db was properly updated with new taskListNum on _task.
        }
Пример #13
0
        ///<summary>Correct signals are sent when user clicks "Reply" button (without having added a TaskNote), and Task.TaskListNum is correctly updated in database.</summary>
        public void FormTaskEdit_OnNoteEditComplete_Reply()
        {
            long oldTaskListNum = _task.TaskListNum;

            _formTaskEditAccessor.SetField("_replyToUserNum", Security.CurUser.UserNum);           //User we are replying to.
            _formTaskEditAccessor.Invoke("OnNoteEditComplete_Reply", new object());
            List <Signalod> listSignals = SignalodT.GetAllSignalods();

            Assert.AreEqual(4, listSignals.Count);
            OpenDentBusiness.Task task = Tasks.GetOne(_task.TaskNum);
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskList && x.FKeyType == KeyType.Undefined && x.FKey == oldTaskListNum));      //Old TL
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskList && x.FKeyType == KeyType.Undefined && x.FKey == _task.TaskListNum));   //New TL
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskPopup && x.FKeyType == KeyType.Task && x.FKey == _task.TaskNum));
            Assert.AreEqual(_task.TaskListNum, task.TaskListNum);
        }
Пример #14
0
        ///<summary>Correct signals are sent when user clicks "Reply" button, and Task.TaskListNum is correctly updated in database.</summary>
        public void FormTaskEdit_butReply_Click()
        {
            long oldTaskListNum = _task.TaskListNum;

            _formTaskEditAccessor.SetField("_replyToUserNum", Security.CurUser.UserNum); //User we are replying to.
            _formTaskEditAccessor.SetField("NotesChanged", true);                        //Causes butReply_Click to skip UI interaction.
            _formTaskEditAccessor.Invoke("butReply_Click", new object(), new EventArgs());
            List <Signalod> listSignals = SignalodT.GetAllSignalods();

            OpenDentBusiness.Task task = Tasks.GetOne(_task.TaskNum);
            Assert.AreEqual(4, listSignals.Count);
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskList && x.FKeyType == KeyType.Undefined && x.FKey == oldTaskListNum));      //Old TL
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskList && x.FKeyType == KeyType.Undefined && x.FKey == _task.TaskListNum));   //New TL
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskPopup && x.FKeyType == KeyType.Task && x.FKey == _task.TaskNum));
            Assert.AreEqual(_task.TaskListNum, task.TaskListNum);
        }
Пример #15
0
        ///<summary>Context menu right-click and drill down in the "Set Priority" option, selecting one of the priority options.</summary>
        public void UserControlTasks_menuTaskPriority_Click()
        {
            Def newDef = new Def()
            {
                DefNum = 5
            };

            _userControlTasksAccessor.Invoke("menuTaskPriority_Click", _task, newDef);
            List <Signalod> listSignals = SignalodT.GetAllSignalods();

            Assert.AreEqual(1, listSignals.Count);
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.Task && x.FKeyType == KeyType.Task &&
                                             x.FKey == _task.TaskNum));//Signal for _task.
            OpenDentBusiness.Task taskDb = Tasks.GetOne(_task.TaskNum);
            Assert.AreEqual(newDef.DefNum, taskDb.PriorityDefNum);
        }
Пример #16
0
        ///<summary>Context menu right-click and select the "Paste" option with a cut TaskList on the clipboard.</summary>
        public void UserControlTasks_Paste_Clicked_TaskList()
        {
            _userControlTasksAccessor.SetField("_wasCut", true);                      //taskList is cut, not copied.
            //Destination task list is the root node (item 0) from _listTaskListTreeHistory which was initialized in SetupTest().
            _userControlTasksAccessor.SetField("_clipTaskList", _taskListGrandchild); //Directly set which taskList is cut.
            _userControlTasksAccessor.Invoke("Paste_Clicked");                        //Context menu "Paste" option click.
            List <Signalod> listSignals = SignalodT.GetAllSignalods();

            Assert.AreEqual(2, listSignals.Count);
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskList && x.FKeyType == KeyType.Undefined &&
                                             x.FKey == _taskListGrandchild.Parent));  //Signal for source taskList.
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskList && x.FKeyType == KeyType.Undefined &&
                                             x.FKey == _taskListParent.TaskListNum)); //Signal for destination taskList.
            TaskList taskListDb = TaskLists.GetOne(_taskListGrandchild.TaskListNum);

            Assert.AreEqual(_taskListParent.TaskListNum, taskListDb.Parent);           //Db was properly updated with new Parent taskList.
        }
Пример #17
0
        ///<summary>User clicks "OK" after having changed the Description.</summary>
        public void FormTaskEdit_butOK_Click_DescriptionChanged()
        {
            _formTaskEditAccessor.SetField("_taskCur", _task);
            _formTaskEditAccessor.SetField("_taskOld", _task.Copy());
            string    newDescript  = "new" + _task.Descript;
            ODtextBox textDescript = (ODtextBox)_formTaskEditAccessor.GetField("textDescript");

            textDescript.Text = newDescript;
            _formTaskEditAccessor.SetField("textDescript", textDescript);
            _formTaskEditAccessor.Invoke("butOK_Click", new object(), new EventArgs());
            List <Signalod> listSignals = SignalodT.GetAllSignalods();

            Assert.AreEqual(2, listSignals.Count);
            OpenDentBusiness.Task task = Tasks.GetOne(_task.TaskNum);
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskList && x.FKeyType == KeyType.Undefined && x.FKey == _task.TaskListNum));      //New TL
            Assert.AreEqual(newDescript, task.Descript);
        }
Пример #18
0
        ///<summary>When sending a Task to multiple TaskLists, copies of the Task are made for the extra TaskLists. Verifies correct signals and Tasks are actually copied.</summary>
        public void FormTaskEdit_SaveCopy_OtherUserInbox()
        {
            _formTaskEditAccessor.SetField("_taskCur", _task);
            _formTaskEditAccessor.SetField("_listTaskNotes", new List <TaskNote>());
            List <long> listTaskListNums = new List <long>()
            {
                _taskListChild.TaskListNum
            };                                                                                      //Not current user's inbox, but still subscribed.

            _formTaskEditAccessor.Invoke("SaveCopy", listTaskListNums);
            List <Signalod> listSignals = SignalodT.GetAllSignalods();

            Assert.AreEqual(2, listSignals.Count);           //One popup signal, one tasklist signal.
            List <OpenDentBusiness.Task> listAllTasks = Tasks.GetNewTasksThisUser(Security.CurUser.UserNum, Clinics.ClinicNum);

            OpenDentBusiness.Task task = listAllTasks.FirstOrDefault(x => x.TaskListNum == _taskListChild.TaskListNum); //copied task.
            Assert.IsNotNull(task);                                                                                     //Task was copied correctly.
            //popup signal for copied task.
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskPopup && x.FKeyType == KeyType.Task && x.FKey == task.TaskNum));
            Assert.AreEqual(_taskListChild.TaskListNum, task.TaskListNum);           //Correct tasklist.
        }
Пример #19
0
        ///<summary>Context menu right-click and select the "Paste" option with a copied Task on the clipboard.</summary>
        public void UserControlTasks_Paste_Clicked_Task_Copied()
        {
            _userControlTasksAccessor.SetField("_wasCut", false);         //task is copied.
            //Destination task list is the root node (item 0) from _listTaskListTreeHistory which was initialized in SetupTest().
            _userControlTasksAccessor.SetField("_clipTask", _task);       //Directly set which task is cut.
            _userControlTasksAccessor.Invoke("Paste_Clicked");            //Context menu "Paste" option click.
            List <Signalod> listSignals = SignalodT.GetAllSignalods();

            Assert.AreEqual(3, listSignals.Count);
            Assert.IsTrue(!listSignals.Exists(x => x.IType == InvalidType.TaskList && x.FKeyType == KeyType.Undefined &&
                                              x.FKey == _taskListGrandchild.TaskListNum)); //Should not have signal for source taskList.
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskList && x.FKeyType == KeyType.Undefined &&
                                             x.FKey == _taskListParent.TaskListNum));      //Signal for destination taskList.
            //Signal for Task Popup. Don't know the primary key for this.
            Assert.IsTrue(listSignals.Exists(x => x.IType == InvalidType.TaskPopup && x.FKeyType == KeyType.Task));
            long pastedTaskPK = listSignals.FirstOrDefault(x => x.IType == InvalidType.TaskPopup)?.FKey ?? 0; //Only way to get new key is by reading the associated signal.

            OpenDentBusiness.Task taskCopiedDb = Tasks.GetOne(_task.TaskNum);                                 //Copied task.
            OpenDentBusiness.Task taskPastedDb = Tasks.GetOne(pastedTaskPK);                                  //Pasted task.
            Assert.AreEqual(_taskListGrandchild.TaskListNum, taskCopiedDb.TaskListNum);                       //Db did not change on copied task.
            Assert.AreEqual(_taskListParent.TaskListNum, taskPastedDb.TaskListNum);                           //Db has pasted task in the correct tasklist.
        }
Пример #20
0
 public void SetupTest()
 {
     TaskListT.ClearTaskListTable();
     TaskT.ClearTaskTable();
     TaskSubscriptionT.ClearTaskSubscriptionTable();
     SignalodT.ClearSignalodTable();
     _taskListParent     = TaskListT.CreateTaskList(descript: "TaskListParent");
     _taskListChild      = TaskListT.CreateTaskList(descript: "TaskListChild", parent: _taskListParent.TaskListNum, parentDesc: _taskListParent.Descript);
     _taskListGrandchild = TaskListT.CreateTaskList(descript: "TaskListGrandchild", parent: _taskListChild.TaskListNum,
                                                    parentDesc: _taskListChild.Descript);
     _task = TaskT.CreateTask(_taskListGrandchild.TaskListNum, descript: "Test Task", fromNum: Security.CurUser.UserNum, priorityDefNum: 1); //Starts in _taskListGrandchild
     TaskSubscriptionT.CreateTaskSubscription(Security.CurUser.UserNum, _taskListParent.TaskListNum);                                        //current user subscribes to top level tasklist.
     Security.CurUser.TaskListInBox = _taskListParent.TaskListNum;                                                                           //Set inbox for current user to _taskListParent.
     try {
         Userods.Update(Security.CurUser);
         Userods.RefreshCache();
     }
     catch {
         Assert.Fail("Failed to update current user task list inbox.");                //Error updating user.
     }
     _formTaskEditInstance = new FormTaskEdit(_task);
     _formTaskEditAccessor = new PrivateObject(_formTaskEditInstance);
     _formTaskEditAccessor.Invoke("LoadTask");
 }