Example #1
0
        // TODO: add layout class more generally.

        /// <summary>
        /// Creates a work item tree node for testing.
        /// </summary>
        /// <param name="workItemType">The name of the work item type.</param>
        /// <param name="level">The level in the tree.</param>
        /// <returns>The work item tree node.</returns>
        private static WorkItemTreeNode CreateWorkItemNode(string workItemType, int level)
        {
            ITfsWorkItem     item = TestHelper.CreateMockWorkItem(workItemType, 1, "test");
            WorkItemTreeNode ans  = new WorkItemTreeNode(item, level);

            return(ans);
        }
Example #2
0
        public void ChooseBuildingBlockLocatesDefaultBuildingBlockWithLevelIfOneExistsForThatLevel()
        {
            WorkItemTreeNode  item = CreateWorkItemNode(Wit, 0);
            LayoutInformation li   = this.SetupTestLayout(BuildingBlockName.Default, new BuildingBlockName(0));
            WorkItemLayout    sut  = this.CreateWorkItemLayout(li);

            // Act
            BuildingBlock ans = sut.ChooseBuildingBlock(item);

            // Assert
            Assert.AreEqual <BuildingBlockName>(new BuildingBlockName(0), new BuildingBlockName(ans), "The level-specific default building block was not used.");
        }
Example #3
0
        public void ChooseBuildingBlockLocatesWorkItemLevelSpecificBuildingBlockInPreferenceToLevelSpecificDefault()
        {
            WorkItemTreeNode  item = CreateWorkItemNode(Wit, 0);
            LayoutInformation li   = this.SetupTestLayout(BuildingBlockName.Default, new BuildingBlockName(0), new BuildingBlockName(Wit, 0));
            WorkItemLayout    sut  = this.CreateWorkItemLayout(li);

            // Act
            BuildingBlock ans = sut.ChooseBuildingBlock(item);

            // Assert
            Assert.AreEqual <BuildingBlockName>(new BuildingBlockName(Wit, 0), new BuildingBlockName(ans), "The work item level-specific building block was not used.");
        }
Example #4
0
        public void BuildingBlockForSpecificWorkItemTypeIsNotUsedForWorkItemsNotOfThatType()
        {
            WorkItemTreeNode  item = CreateWorkItemNode("SomeOtherWorkItemType", 0);
            LayoutInformation li   = this.SetupTestLayout(BuildingBlockName.Default, new BuildingBlockName(Wit));
            WorkItemLayout    sut  = this.CreateWorkItemLayout(li);

            // Act
            BuildingBlock ans = sut.ChooseBuildingBlock(item);

            // Assert
            Assert.AreEqual <BuildingBlockName>(BuildingBlockName.Default, new BuildingBlockName(ans), "The default building block was not used.");
        }
Example #5
0
        public void ChooseBuildingBlockLocatesDefaultBuildingBlockEvenIfNotTheFirstInALayout()
        {
            WorkItemTreeNode  item = CreateWorkItemNode(Wit, 0);
            LayoutInformation li   = this.SetupTestLayout(new BuildingBlockName("dummy"), BuildingBlockName.Default);
            WorkItemLayout    sut  = this.CreateWorkItemLayout(li);

            // Act
            BuildingBlock ans = sut.ChooseBuildingBlock(item);

            // Assert
            Assert.AreEqual <BuildingBlockName>(BuildingBlockName.Default, new BuildingBlockName(ans), "The default building block was not used.");
        }
Example #6
0
        public void BuildingBlockForSpecificWorkItemTypeAndLevelNotUsedForWorkItemsNotOnThatLevel()
        {
            WorkItemTreeNode  item = CreateWorkItemNode(Wit, 0);
            LayoutInformation li   = this.SetupTestLayout(BuildingBlockName.Default, new BuildingBlockName(Wit), new BuildingBlockName(Wit, 1));
            WorkItemLayout    sut  = this.CreateWorkItemLayout(li);

            // Act
            BuildingBlock ans = sut.ChooseBuildingBlock(item);

            // Assert
            Assert.AreEqual <BuildingBlockName>(new BuildingBlockName(Wit), new BuildingBlockName(ans));
        }
Example #7
0
        public void BuildingBlockForSpecificWorkItemTypeAndLevelOverridesDefaultIfWorkItemTypeSpecificNotDefined()
        {
            WorkItemTreeNode  item = CreateWorkItemNode(Wit, 1);
            LayoutInformation li   = this.SetupTestLayout(BuildingBlockName.Default, new BuildingBlockName(Wit, 1));
            WorkItemLayout    sut  = this.CreateWorkItemLayout(li);

            // Act
            BuildingBlock ans = sut.ChooseBuildingBlock(item);

            // Assert
            Assert.AreEqual <BuildingBlockName>(new BuildingBlockName(Wit, 1), new BuildingBlockName(ans));
        }
        public void DepthFirstIterationTest()
        {
            // Arrange
            WorkItemTreeNode node0     = new WorkItemTreeNode(null, 0);
            WorkItemTreeNode node0_0   = new WorkItemTreeNode(null, 1);
            WorkItemTreeNode node0_0_0 = new WorkItemTreeNode(null, 2);
            WorkItemTreeNode node0_0_1 = new WorkItemTreeNode(null, 2);
            WorkItemTreeNode node1     = new WorkItemTreeNode(null, 0);
            WorkItemTreeNode node1_0   = new WorkItemTreeNode(null, 0);

            node0.Children.Add(node0_0);
            node0_0.Children.Add(node0_0_0);
            node0_0.Children.Add(node0_0_1);
            node1.Children.Add(node1_0);

            WorkItemTree sut = new WorkItemTree();

            sut.RootNodes.Add(node0);
            sut.RootNodes.Add(node1);

            // Act
            IEnumerator <WorkItemTreeNode> e = sut.DepthFirstNodes().GetEnumerator();

            // Assert
            Assert.IsTrue(e.MoveNext());
            Assert.AreSame(node0, e.Current);
            Assert.IsTrue(e.MoveNext());
            Assert.AreSame(node0_0, e.Current);
            Assert.IsTrue(e.MoveNext());
            Assert.AreSame(node0_0_0, e.Current);
            Assert.IsTrue(e.MoveNext());
            Assert.AreSame(node0_0_1, e.Current);
            Assert.IsTrue(e.MoveNext());
            Assert.AreSame(node1, e.Current);
            Assert.IsTrue(e.MoveNext());
            Assert.AreSame(node1_0, e.Current);
        }