public void Init() { _workStepRepository = new MemoryWorkStepRepository(); _workItemRepository = new MemoryWorkItemRepository(); _wp = new Workflow(new WorkflowRepository(_workItemRepository, _workStepRepository)); _workStepRepository.Add(WorkStep.New("/analysis").UpdateOrdinal(1).UpdateType(WorkStepType.Begin).UpdateWorkItemClass("cr")); _workStepRepository.Add(WorkStep.New("/development").UpdateOrdinal(2).UpdateType(WorkStepType.Normal).UpdateWorkItemClass("cr")); _workStepRepository.Add(WorkStep.New("/development/inprocess").UpdateOrdinal(1).UpdateType(WorkStepType.Expand).UpdateWorkItemClass("cr")); _workStepRepository.Add(WorkStep.New("/development/inprocess/tasks").UpdateOrdinal(1).UpdateType(WorkStepType.Normal).UpdateWorkItemClass("task").UpdateTitle("Tasks")); _workStepRepository.Add(WorkStep.New("/development/inprocess/tasks/new").UpdateOrdinal(1).UpdateType(WorkStepType.Begin).UpdateWorkItemClass("task")); _workStepRepository.Add(WorkStep.New("/development/inprocess/tasks/inprocess").UpdateOrdinal(2).UpdateType(WorkStepType.Normal).UpdateWorkItemClass("task")); _workStepRepository.Add(WorkStep.New("/development/inprocess/tasks/done").UpdateOrdinal(3).UpdateType(WorkStepType.End).UpdateWorkItemClass("task")); _workStepRepository.Add(WorkStep.New("/development/done").UpdateOrdinal(2).UpdateType(WorkStepType.Normal).UpdateWorkItemClass("cr")); _workStepRepository.Add(WorkStep.New("/done").UpdateOrdinal(1).UpdateType(WorkStepType.End).UpdateWorkItemClass("cr")); }
public void ShouldThrowExceptionIfWipLimitWillBeViolated() { var wipLimitChecker = _mocks.Stub <IWipLimitChecker>(); _mover.WipLimitChecker = wipLimitChecker; var analysisStep = WorkStep.New("/analysis").UpdateOrdinal(1).UpdateType(WorkStepType.Begin).UpdateWorkItemClass("cr"); var devStep = WorkStep.New("/dev").UpdateOrdinal(2).UpdateType(WorkStepType.Normal).UpdateWorkItemClass("cr"); _workStepRepository.Add(analysisStep); _workStepRepository.Add(devStep); _workflow.CreateWorkItem(WorkItem.New("cr1", "/analysis")); var workItem = _workItemRepository.GetWorkItem("cr1"); SetupResult.For(wipLimitChecker.CanAcceptWorkItem(null)).IgnoreArguments().Return(false); AssertUtils.AssertThrows <WipLimitViolationException>( () => _mover.MoveWorkItem(workItem, devStep) ); }
public void ShouldCreateWorkItemInBeginStep() { _workStepRepository.Add(WorkStep.New("/analysis").UpdateOrdinal(1).UpdateType(WorkStepType.Begin).UpdateWorkItemClass("cr")); _workStepRepository.Add(WorkStep.New("/development").UpdateOrdinal(2).UpdateType(WorkStepType.Normal).UpdateWorkItemClass("cr")); _workflow.CreateWorkItem(WorkItem.New("cr1", "/analysis")); Assert.AreEqual("/analysis", _workItemRepository.GetWorkItem("cr1").Path); }
public void ShouldGetAllSubsteps() { _workStepRepository.Add(WorkStep.New("/feedback").UpdateOrdinal(1).UpdateType(WorkStepType.Parallel).UpdateWorkItemClass("cr")); _workStepRepository.Add(WorkStep.New("/feedback/review").UpdateOrdinal(1).UpdateType(WorkStepType.Normal).UpdateWorkItemClass("cr")); _workStepRepository.Add(WorkStep.New("/feedback/test").UpdateOrdinal(2).UpdateType(WorkStepType.Normal).UpdateWorkItemClass("cr")); Assert.AreEqual(2, _workStepRepository.GetChildWorkSteps("/feedback").Count()); }
public void ShouldRenderSingleStepWorkflow() { _workStepRepository.Add(WorkStep.New("/analysis").UpdateOrdinal(1).UpdateType(WorkStepType.Begin).UpdateWorkItemClass("cr")); var doc = GetDocument(); Assert.IsNotNull(doc.SelectSingleNode("/html/body/ol/li[@id=\"analysis\"]")); }