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);
        }
Exemple #3
0
        public void TransitionState_New_to_Done_succeeded_via_InProgress()
        {
            var logger     = new DebugEventLogger();
            var settings   = TestHelpers.LoadConfigFromResourceFile("NewObjects.policies", logger);
            var repository = new WorkItemRepositoryMock();
            var context    = Substitute.For <IRequestContext>();

            context.GetProjectCollectionUri().Returns(
                new System.Uri("http://localhost:8080/tfs/DefaultCollection"));
            var runtime = RuntimeContext.MakeRuntimeContext("settingsPath", settings, context, logger, (c, i, l) => repository);

            var workItem     = new WorkItemMock(repository, runtime);
            var workItemType = new WorkItemTypeMock()
            {
                Name            = "Task",
                DocumentContent = TestHelpers.LoadTextFromEmbeddedResource("task.xml")
            };

            workItem.Id   = 42;
            workItem.Type = workItemType;

            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);
        }
        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);
        }
Exemple #5
0
        public void TransitionStateCSharp_New_to_Done_succeeded_via_InProgress()
        {
            var logger     = new DebugEventLogger();
            var settings   = TestHelpers.LoadConfigFromResourceFile("NewObjects.policies", logger);
            var repository = new WorkItemRepositoryMock();

            System.Func <IRuntimeContext, IScriptLibrary> scriptLibraryBuilder = (x) => Substitute.For <IScriptLibrary>();
            var context = Substitute.For <IRequestContext>();

            context.GetProjectCollectionUri().Returns(
                new System.Uri("http://*****:*****@"
self.TransitionToState(""Done"", ""script test"");
";

            repository.Logger = logger;
            var workItem     = new WorkItemMock(repository, runtime);
            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, "System.State");

            workItem.Fields[mockedField.Name] = mockedField;
            mockedField.OriginalValue         = string.Empty;
            mockedField.Value  = mockedField.OriginalValue;
            mockedField.Status = Microsoft.TeamFoundation.WorkItemTracking.Client.FieldStatus.InvalidValueNotInOtherField;

            repository.SetWorkItems(new[] { workItem });

            var library = Substitute.For <IScriptLibrary>();
            var engine  = new CSharpScriptEngine(logger, false, library);

            engine.LoadAndRun("test", script, workItem, repository);

            Assert.AreEqual("Done", workItem.Fields["System.State"].Value);
            Assert.AreEqual(2, workItem.InternalSaveCount);
        }
Exemple #6
0
        public void TransitionState_to_non_existing()
        {
            var logger     = new DebugEventLogger();
            var settings   = TestHelpers.LoadConfigFromResourceFile("NewObjects.policies", logger);
            var repository = new WorkItemRepositoryMock();

            System.Func <IRuntimeContext, IScriptLibrary> scriptLibraryBuilder = (x) => Substitute.For <IScriptLibrary>();
            var context = Substitute.For <IRequestContext>();

            context.GetProjectCollectionUri().Returns(
                new System.Uri("http://localhost:8080/tfs/DefaultCollection"));
            var runtime = RuntimeContext.MakeRuntimeContext("settingsPath", settings, context, logger, (c) => repository, scriptLibraryBuilder);

            var workItem     = new WorkItemMock(repository, runtime);
            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, "System.State");

            mockedField.Value                 = string.Empty;
            mockedField.OriginalValue         = string.Empty;
            mockedField.Status                = Microsoft.TeamFoundation.WorkItemTracking.Client.FieldStatus.InvalidValueNotInOtherField;
            workItem.Fields[mockedField.Name] = mockedField;

            repository.SetWorkItems(new[] { workItem });
            string targetState = "DoesNotExists";

            workItem.TransitionToState(targetState, "test");

            Assert.AreNotEqual(targetState, workItem.Fields["System.State"].Value);
            Assert.AreEqual(workItem.Fields["System.State"].OriginalValue, workItem.Fields["System.State"].Value);
            Assert.IsFalse(workItem.InternalWasSaveCalled);
        }