예제 #1
0
        public void Get_By_All_Conditions()
        {
            #region initialization task

            User user_1 = new User();
            User user_2 = new User();
            //qualified
            Task task_1 = new Task
            {
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_1.MockActualWorkPeriod(12);
            task_1.MockCreateTime(new DateTime(2014, 3, 16));

            Task task_Greater_OverDue = new Task
            {
                OverDue = 0,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_Greater_OverDue.MockActualWorkPeriod(12);
            task_Greater_OverDue.MockCreateTime(new DateTime(2014, 3, 16));

            Task task_Less_OverDue = new Task
            {
                OverDue = 20,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_Less_OverDue.MockActualWorkPeriod(12);
            task_Less_OverDue.MockCreateTime(new DateTime(2014, 3, 16));

            Task task_Greater_WorkPeriod = new Task
            {
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_Greater_WorkPeriod.MockActualWorkPeriod(1);
            task_Greater_WorkPeriod.MockCreateTime(new DateTime(2014, 3, 16));
            Task task_Less_WorkPeriod = new Task
            {
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_Less_WorkPeriod.MockActualWorkPeriod(20);
            task_Less_WorkPeriod.MockCreateTime(new DateTime(2014, 3, 16));

            Task task_Greater_Publish = new Task
            {
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_Greater_Publish.MockCreateTime(new DateTime(2014, 2, 15));
            task_Greater_Publish.MockActualWorkPeriod(12);
            Task task_Less_Publish = new Task
            {
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_Less_Publish.MockCreateTime(new DateTime(2014, 5, 15));
            task_Less_Publish.MockCreateTime(new DateTime(2014, 3, 16));

            Task task_Greater_AssignTime = new Task
            {
                AssignTime = new DateTime(2014, 6, 16),
                OverDue = 8,
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_Greater_AssignTime.MockActualWorkPeriod(12);
            task_Greater_AssignTime.MockCreateTime(new DateTime(2014, 3, 16));
            Task task_Less_AssignTime = new Task
            {
                AssignTime = new DateTime(2014, 10, 16),
                OverDue = 8,
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_Less_AssignTime.MockActualWorkPeriod(12);
            task_Less_AssignTime.MockCreateTime(new DateTime(2014, 3, 16));

            Task task_From_OwnTime = new Task
            {
                OwnTime = new DateTime(2014, 6, 15),
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_From_OwnTime.MockActualWorkPeriod(12);
            task_From_OwnTime.MockCreateTime(new DateTime(2014, 3, 16));
            Task task_To_OwnTime = new Task
            {
                OwnTime = new DateTime(2014, 11, 16),
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_To_OwnTime.MockActualWorkPeriod(12);
            task_To_OwnTime.MockCreateTime(new DateTime(2014, 3, 16));

            Task task_From_ExpectCompleteTime = new Task
            {
                ExpectCompleteTime = new DateTime(2014, 6, 14),
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_From_ExpectCompleteTime.MockActualWorkPeriod(12);
            task_From_ExpectCompleteTime.MockCreateTime(new DateTime(2014, 3, 16));
            Task task_To_ExpectCompleteTime = new Task
            {
                ExpectCompleteTime = new DateTime(2014, 10, 6),
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_To_ExpectCompleteTime.MockActualWorkPeriod(12);
            task_To_ExpectCompleteTime.MockCreateTime(new DateTime(2014, 3, 16));

            Task task_From_ActualComplete = new Task
            {
                ActualCompleteTime = new DateTime(2014, 4, 20),
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_From_ActualComplete.MockActualWorkPeriod(12);
            task_From_ActualComplete.MockCreateTime(new DateTime(2014, 3, 16));
            Task task_To_ActualComplete = new Task
            {
                ActualCompleteTime = new DateTime(2014, 6, 6),
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_To_ActualComplete.MockActualWorkPeriod(12);
            task_To_ActualComplete.MockCreateTime(new DateTime(2014, 3, 16));

            Task task_From_LastestUpdateTime = new Task
            {
                LatestUpdateTime = new DateTime(2014, 5, 20),
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_From_LastestUpdateTime.MockActualWorkPeriod(12);
            task_From_LastestUpdateTime.MockCreateTime(new DateTime(2014, 3, 16));

            Task task_To_LastestUpdateTime = new Task
            {
                LatestUpdateTime = new DateTime(2014, 7, 26),
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_To_LastestUpdateTime.MockActualWorkPeriod(12);
            task_To_LastestUpdateTime.MockCreateTime(new DateTime(2014, 3, 16));

            Task task_not_SelectedPriorityLevel = new Task
            {
                Priority = TaskPriority.High,
                Difficulty = TaskDifficulty.Easiest,
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1
            };
            task_not_SelectedPriorityLevel.MockActualWorkPeriod(12);
            task_not_SelectedPriorityLevel.MockCreateTime(new DateTime(2014, 3, 16));

            Task task_not_SelectedDifficulty = new Task
            {
                Difficulty = TaskDifficulty.Easiest,
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_not_SelectedDifficulty.MockActualWorkPeriod(12);
            task_not_SelectedDifficulty.MockCreateTime(new DateTime(2014, 3, 16));

            Task task_not_SelectedOwnerId = new Task
            {
                Owner = user_2,
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_not_SelectedOwnerId.MockActualWorkPeriod(12);
            task_not_SelectedOwnerId.MockCreateTime(new DateTime(2014, 3, 16));

            Task task_not_SelectedAccepterId = new Task
            {
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_2,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_not_SelectedAccepterId.MockActualWorkPeriod(12);
            task_not_SelectedAccepterId.MockCreateTime(new DateTime(2014, 3, 16));

            Task task_not_SelectedPublisherId = new Task
            {
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_2,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_not_SelectedPublisherId.MockActualWorkPeriod(12);
            task_not_SelectedPublisherId.MockCreateTime(new DateTime(2014, 3, 16));

            Task task_not_SelectedStage = new Task
            {
                CurrentStatus = Status.Publish,
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_not_SelectedStage.MockActualWorkPeriod(12);
            task_not_SelectedStage.MockCreateTime(new DateTime(2014, 3, 16));

            Task task_not_SelectedQuality = new Task
            {
                Quality = TaskQuality.Perfect,
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_not_SelectedQuality.MockActualWorkPeriod(12);
            task_not_SelectedQuality.MockCreateTime(new DateTime(2014, 3, 16));

            Task task_not_SelectedNodeType = new Task
            {
                OverDue = 8,
                AssignTime = new DateTime(2014, 8, 15),
                OwnTime = new DateTime(2014, 8, 15),
                ExpectCompleteTime = new DateTime(2014, 8, 14),
                ActualCompleteTime = new DateTime(2014, 5, 3),
                LatestUpdateTime = new DateTime(2014, 6, 11),
                Difficulty = TaskDifficulty.Hardest,
                Owner = user_1,
                Accepter = user_1,
                Publisher = user_1,
                CurrentStatus = Status.Pause,
                Quality = TaskQuality.Good,
                Project = project_1,
                Priority = TaskPriority.Highest
            };
            task_not_SelectedNodeType.Parent = new Task();
            task_not_SelectedNodeType.Children = null;
            task_not_SelectedNodeType.MockActualWorkPeriod(12);
            task_not_SelectedNodeType.MockCreateTime(new DateTime(2014, 3, 16));

            #endregion

            #region initialization session.Query<Task>()

            Save(
                task_1,
                task_Greater_OverDue,
                task_Less_OverDue,
                task_Greater_WorkPeriod,
                task_Less_WorkPeriod,
                task_Greater_Publish,
                task_Less_Publish,
                task_Greater_AssignTime,
                task_Less_AssignTime,
                task_From_OwnTime,
                task_To_OwnTime,
                task_From_ExpectCompleteTime,
                task_To_ExpectCompleteTime,
                task_From_ActualComplete,
                task_To_ActualComplete,
                task_From_LastestUpdateTime,
                task_To_LastestUpdateTime,
                task_not_SelectedPriorityLevel,
                task_not_SelectedDifficulty,
                task_not_SelectedOwnerId,
                task_not_SelectedAccepterId,
                task_not_SelectedPublisherId,
                task_not_SelectedStage,
                task_not_SelectedQuality,
                task_not_SelectedNodeType);

            #endregion

            set_Current_Project();

            #region initialization model

            model.GreaterOverDue = 3;
            model.LessOverDue = 10;

            model.GreaterWorkPeriod = 5;
            model.LessWorkPeriod = 17;

            model.TimeSpan.FromPublish = new DateTime(2014, 3, 15);
            model.TimeSpan.ToPublish = new DateTime(2014, 3, 18);

            model.TimeSpan.FromAssign = new DateTime(2014, 7, 15);
            model.TimeSpan.ToAssign = new DateTime(2014, 10, 15);

            model.TimeSpan.FromOwn = new DateTime(2014, 8, 1);
            model.TimeSpan.ToOwn = new DateTime(2014, 9, 1);

            model.TimeSpan.FromExpectComplete = new DateTime(2014, 8, 12);
            model.TimeSpan.ToExpectComplete = new DateTime(2014, 9, 11);

            model.TimeSpan.FromActualComplete = new DateTime(2014, 5, 1);
            model.TimeSpan.ToActualComplete = new DateTime(2014, 5, 9);

            model.TimeSpan.FromLastestUpdateTime = new DateTime(2014, 6, 9);
            model.TimeSpan.ToLastestUpdateTime = new DateTime(2014, 7, 15);

            model.SelectedPriority = TaskPriority.Highest;
            model.SelectedDifficulty = TaskDifficulty.Hardest;
            model.SelectedOwnerId = user_1.Id;
            model.SelectedAccepterId = user_1.Id;
            model.SelectedPublisherId = user_1.Id;
            model.SelectedStage = (int)Status.Pause;
            model.SelectedQuality = TaskQuality.Good;
            model.SelectedNodeType = NodeType.Root;

            #endregion

            tasks = session.Query<Task>().Get(model).ToList();
            Assert.That(tasks.Count, Is.EqualTo(1));
            Contains(tasks, task_1);
        }