public void TransitionStateCSharp_New_to_Done_succeeded_via_InProgress() { string script = @" self.TransitionToState(""Done"", ""script test""); "; var repository = new WorkItemRepositoryMock(); var logger = Substitute.For<ILogEvents>(); repository.Logger = logger; var workItem = new WorkItemMock(repository); var workItemType = new WorkItemTypeMock() { Name = "Task", DocumentContent = TestHelpers.LoadTextFromEmbeddedResource("task.xml") }; workItem.Id = 42; workItem.Type = workItemType; workItem.TypeName = workItemType.Name; ((FieldMock)workItem.Fields["State"]).OriginalValue = string.Empty; workItem.Fields["State"].Value = workItem.Fields["State"].OriginalValue; ((FieldMock)workItem.Fields["State"]).Status = Microsoft.TeamFoundation.WorkItemTracking.Client.FieldStatus.InvalidValueNotInOtherField; repository.SetWorkItems(new[] { workItem }); var engine = new CSharpScriptEngine(repository, logger, false); engine.LoadAndRun("test", script, workItem); Assert.AreEqual("Done", workItem.Fields["State"].Value); Assert.AreEqual(2, workItem.InternalSaveCount); }
public void TransitionState_to_non_existing() { var repository = new WorkItemRepositoryMock(); repository.Logger = Substitute.For<ILogEvents>(); var workItem = new WorkItemMock(repository); var workItemType = new WorkItemTypeMock() { Name = "Task", DocumentContent = TestHelpers.LoadTextFromEmbeddedResource("task.xml") }; workItem.Id = 42; workItem.Type = workItemType; workItem.TypeName = workItemType.Name; workItem.Fields["State"].Value = string.Empty; ((FieldMock)workItem.Fields["State"]).OriginalValue = string.Empty; ((FieldMock)workItem.Fields["State"]).Status = Microsoft.TeamFoundation.WorkItemTracking.Client.FieldStatus.InvalidValueNotInOtherField; repository.SetWorkItems(new[] { workItem }); string targetState = "DoesNotExists"; workItem.TransitionToState(targetState, "test"); Assert.AreNotEqual(targetState, workItem.Fields["State"].Value); Assert.AreEqual(workItem.Fields["State"].OriginalValue, workItem.Fields["State"].Value); Assert.IsFalse(workItem.InternalWasSaveCalled); }
public void TransitionState_New_to_Done_succeeded_via_InProgress() { var repository = new WorkItemRepositoryMock(); repository.Logger = Substitute.For<ILogEvents>(); var workItem = new WorkItemMock(repository); var workItemType = new WorkItemTypeMock() { Name = "Task", DocumentContent = TestHelpers.LoadTextFromEmbeddedResource("task.xml") }; workItem.Id = 42; workItem.Type = workItemType; workItem.TypeName = workItemType.Name; FieldMock mockedField = new FieldMock(workItem, "State"); workItem.Fields[mockedField.Name] = mockedField; mockedField.OriginalValue = string.Empty; workItem.Fields["State"].Value = workItem.Fields["State"].OriginalValue; mockedField.Status = Microsoft.TeamFoundation.WorkItemTracking.Client.FieldStatus.InvalidValueNotInOtherField; repository.SetWorkItems(new[] { workItem }); string targetState = "Done"; workItem.TransitionToState(targetState, "test"); Assert.AreEqual(targetState, workItem.Fields["State"].Value); Assert.AreEqual(2, workItem.InternalSaveCount); }