예제 #1
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));
        }
예제 #2
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;
     }
 }
예제 #3
0
        public int Create(NewModel model, int creatorId)
        {
            Task task = new Task();

            task.Publisher = session.Load<User>(creatorId);
            task.Project = session.Load<Project>(model.CurrentProject.TailSelectedProject.Id);
            addParent(task, model.TaskItem.Parent);
            setAccepter(task, model.TaskItem.Accepter);

            model.TaskItem.Fill(task);

            task.Publish();

            session.Save(task);
            session.Flush();
            // important: to ensure the task is published first and then assigned later!

            if (model.TaskItem.Owner.Id.HasValue)
            {
                task.Owner = session.Load<User>(model.TaskItem.Owner.Id.Value);
                task.Assign();
            }

            return task.Id;
        }
예제 #4
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));
        }
예제 #5
0
        public void Comment()
        {
            User publisher = new User();
            User owner = new User();
            Project project = new Project();

            Task task = new Task
            {
                Project = project,
                Publisher = publisher,
                Owner = owner
            };
            task.Publish();
            task.Assign();

            Assert.That(task.Histroy.Count, Is.EqualTo(2));
            Assert.That(publisher.MessagesToMe.IsNullOrEmpty(), Is.True);
            Assert.That(owner.MessagesFromMe.IsNullOrEmpty(), Is.True);

            string comment = "工时太少";
            task.Comment(owner, publisher, comment);

            Assert.That(task.Histroy.Count, Is.EqualTo(3));
            Assert.That(publisher.MessagesToMe[0].Task, Is.EqualTo(task));
            Assert.That(publisher.MessagesToMe[0].Project, Is.EqualTo(project));
            Assert.That(task.get_latest_history().Comment, Is.EqualTo(comment));
            Assert.That(task.get_latest_history().Description, Is.EqualTo(Constants.DescriptionComment));

            Assert.That(publisher.MessagesToMe.Count, Is.EqualTo(1));
            Assert.That(publisher.MessagesToMe[0].Content, Is.EqualTo(comment));
            Assert.That(owner.MessagesFromMe.Count, Is.EqualTo(1));
            Assert.That(owner.MessagesFromMe[0].Content, Is.EqualTo(comment));
        }
예제 #6
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));
        }
예제 #7
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
        }