public void ChangeStateTask() { Guid taskId = Guid.Parse("{E79904A7-F442-454E-B8EF-01B1C1AACDD4}"); _taskRepository.Clear(); _taskRepository.Add(new Job { Id = taskId, State = TaskState.New }); TaskCommandHandlers taskCommandComponent = _taskCommandHandlers; ICommandHandler <SetStateInProcessCommand> setStateInProcessCommandHandler = taskCommandComponent; var setStateInProcessCommand = new SetStateInProcessCommand(taskId, "executor"); setStateInProcessCommandHandler.Handle(setStateInProcessCommand); var task = _taskRepository.First(); Assert.AreEqual(TaskState.InProcess, task.State); ICommandHandler <SetStateDoneCommand> setStateDoneCommandHandler = taskCommandComponent; var setStateDoneCommand = new SetStateDoneCommand(taskId); setStateDoneCommandHandler.Handle(setStateDoneCommand); task = _taskRepository.First(); Assert.AreEqual(TaskState.Done, task.State); task.State = TaskState.InProcess; ICommandHandler <SetStateFailCommand> setStateNewCommandHandler = taskCommandComponent; var setStateNewCommand = new SetStateFailCommand(taskId); setStateNewCommandHandler.Handle(setStateNewCommand); task = _taskRepository.First(); Assert.AreEqual(TaskState.Fail, task.State); }
/// <summary> /// Поменять статус задачи -> Выполнена. /// </summary> /// <param name="command"></param> public void Handle(SetStateDoneCommand command) { CommitWrapper(() => { var task = _taskRepository.GetByIdOrNull(command.TaskId); if (task == null) { throw new NullReferenceException(); } if (task.State != TaskState.InProcess) { throw new InvalidOperationException(); } task.State = TaskState.Done; }); }