예제 #1
0
        public void BeginWork()
        {
            Task task = new Task();

            task.BeginWork();

            task.has_begin();
        }
예제 #2
0
        public void Complete()
        {
            Task task = new Task { Accepter = new User(), ExpectCompleteTime = SystemTime.Now() };
            task.BeginWork();

            SystemTime.SetDateTime(now.AddHours(3));
            task.Complete();

            task.has_complete();
            Assert.That(task.Delay, Is.EqualTo(3));
        }
예제 #3
0
        public void Doubt()
        {
            Task task = new Task
            {
                Publisher = new User(),
                Owner = new User()
            };
            task.Publish();
            task.Assign();
            task.Own();
            task.BeginWork();
            task.Doubt();

            Assert.That(task.CurrentStatus, Is.EqualTo(Status.Doubt));
        }
예제 #4
0
        public void Update_Property()
        {
            Task task = new Task { Publisher = new User() };
            task.Publish();

            task.UpdateProperty();
            Assert.That(task.CurrentStatus, Is.EqualTo(Status.Publish));

            task.Owner = new User();
            task.Own();
            task.BeginWork();
            task.Doubt();

            task.UpdateProperty();
            Assert.That(task.CurrentStatus, Is.EqualTo(Status.Update));
            Assert.That(task.get_latest_history().Status, Is.EqualTo(Status.Update));
        }
예제 #5
0
        public void BeginWork_With_Parent()
        {
            #region preparation

            Task task = get_task_with_parents();
            task.Owner = new User();

            Task parent = task.Parent;
            parent.IsVirtual = true;

            Task grand_parent = task.Parent.Parent;
            grand_parent.IsVirtual = true;
            User grand_parent_owner = new User();
            grand_parent.Owner = grand_parent_owner;

            #endregion

            #region the first time the task begin

            task.BeginWork();

            task.has_begin();

            parent.has_begin(Constants.CommentAutoBegin);
            Assert.That(parent.Owner, Is.EqualTo(task.Owner));
            has_auto_own(parent);

            grand_parent.has_begin(Constants.CommentAutoBegin);
            //the owner will not change because it had one before
            Assert.That(grand_parent.Owner, Is.EqualTo(grand_parent_owner));

            #endregion

            #region a second time the task's brother begin

            Task brother = new Task();
            parent.AddChild(brother);

            SystemTime.SetDateTime(now.AddMinutes(23));
            brother.BeginWork();

            Assert.That(parent.LatestUpdateTime, Is.EqualTo(now));

            #endregion
        }
예제 #6
0
 private static void set_task_status(Task task, Status status)
 {
     switch (status)
     {
         case Status.Assign:
             task.Assign();
             break;
         case Status.Remove:
             task.Remove();
             break;
         case Status.BeginWork:
             task.Assign();
             task.BeginWork();
             break;
         case Status.Complete:
             task.Assign();
             task.BeginWork();
             task.Complete();
             break;
         case Status.Accept:
             task.Assign();
             task.BeginWork();
             task.Complete();
             task.Accept(null);
             break;
     }
 }
예제 #7
0
        private Task get_task_with_brothers_and_parents()
        {
            Task root = new Task { Accepter = new User() };
            root.BeginWork();

            Task branch_1 = new Task { Accepter = new User() };
            branch_1.BeginWork();
            root.AddChild(branch_1);

            Task branch_2 = new Task { Accepter = new User() };
            branch_2.CurrentStatus = Status.Complete;
            root.AddChild(branch_2);

            Task leaf_1 = new Task { Accepter = new User() };
            leaf_1.BeginWork();
            branch_1.AddChild(leaf_1);

            Task leaf_2 = new Task { Accepter = new User() };
            leaf_2.CurrentStatus = Status.Complete;
            branch_1.AddChild(leaf_2);

            return leaf_1;
        }
예제 #8
0
        public void Accept_When_Owner_Is_Accepter()
        {
            User user = new User();
            Task task = new Task
            {
                Owner = user,
                Accepter = user
            };
            task.BeginWork();
            task.Complete();

            task.has_accept(Constants.CommentAutoAcceptForOwnerIsAccepter);
        }
예제 #9
0
        public void Dissent()
        {
            Task task = new Task
            {
                Publisher = new User(),
                Owner = new User(),
                Accepter = new User()
            };
            task.Publish();
            task.Assign();
            task.BeginWork();
            task.Complete();
            task.RefuseAccept();
            task.Dissent();

            task.has_update_latest();
            Assert.That(task.CurrentStatus, Is.EqualTo(Status.Dissent));
        }
예제 #10
0
        public void Resume_When_Quit()
        {
            Task task = new Task { Publisher = new User() };
            task.Owner = new User();
            SystemTime.SetDateTime(new DateTime(2014, 11, 1));
            task.Publish();
            SystemTime.SetDateTime(new DateTime(2014, 11, 2));
            task.Assign();
            SystemTime.SetDateTime(new DateTime(2014, 11, 3));
            task.BeginWork();
            SystemTime.SetDateTime(new DateTime(2014, 11, 4));
            task.Quit();
            SystemTime.SetDateTime(new DateTime(2014, 11, 5));
            task.Remove();
            SystemTime.SetDateTime(new DateTime(2014, 11, 6));
            task.Resume();

            Assert.That(task.CurrentStatus, Is.EqualTo(Status.Quit));
        }
예제 #11
0
        public void Remove()
        {
            #region Publish Status

            Task task_when_publish = new Task { Publisher = new User() };
            task_when_publish.Publish();

            task_when_publish.Remove();
            Assert.That(task_when_publish.CurrentStatus, Is.EqualTo(Status.Remove));

            #endregion

            #region Assign Status

            Task task_when_assign = new Task { Publisher = new User() };
            task_when_assign.Owner = new User();
            task_when_assign.Publish();
            task_when_assign.Assign();

            task_when_assign.Remove();
            Assert.That(task_when_assign.CurrentStatus, Is.EqualTo(Status.Remove));

            #endregion

            #region Quit Status

            Task task_when_quit = new Task { Publisher = new User() };
            task_when_quit.Owner = new User();
            task_when_quit.Publish();
            task_when_quit.Assign();
            task_when_quit.BeginWork();
            task_when_quit.Quit();

            task_when_quit.Remove();
            Assert.That(task_when_quit.CurrentStatus, Is.EqualTo(Status.Remove));

            #endregion
        }
예제 #12
0
        public void Accept()
        {
            Task task = new Task
            {
                Owner = new User(),
                Accepter = new User()
            };
            task.BeginWork();
            task.Complete();
            task.Accept(TaskQuality.Good);

            task.has_accept(TaskQuality.Good);
        }