public void SetUp() { testFrameworks = new MockTestFrameworksWithNUnitFrameworkSupport(); treeView = new DummyParserServiceTestTreeView(testFrameworks); // Create a solution with two test projects. solution = new Solution(new MockProjectChangeWatcher()); // Create the first test project. firstProject = new MockCSharpProject(solution, "FirstTestProject"); ReferenceProjectItem nunitFrameworkReferenceItem = new ReferenceProjectItem(firstProject); nunitFrameworkReferenceItem.Include = "NUnit.Framework"; ProjectService.AddProjectItem(firstProject, nunitFrameworkReferenceItem); // Create the second test project. secondProject = new MockCSharpProject(solution, "SecondTestProject"); nunitFrameworkReferenceItem = new ReferenceProjectItem(secondProject); nunitFrameworkReferenceItem.Include = "NUnit.Framework"; ProjectService.AddProjectItem(secondProject, nunitFrameworkReferenceItem); // Add the projects to the solution. solution.Folders.Add(firstProject); solution.Folders.Add(secondProject); // Create a dummy project content so the projects will be added // to the tree. treeView.ProjectContentForProject = new MockProjectContent(); // Add the solution to the tree. treeView.AddSolution(solution); allTestsTreeNode = treeView.Nodes[0] as AllTestsTreeNode; firstTestProject = treeView.GetTestProject(firstProject); secondTestProject = treeView.GetTestProject(secondProject); }
/// <summary> /// Adds the project to the test tree view if the project /// has a reference to a supported test framework. /// </summary> /// <remarks> /// If the project is already in the tree then it will /// not be added again. If a project is already in the tree then /// an All Tests root node will be added. /// </remarks> public void AddProject(IProject project) { if (TestProject.IsTestProject(project)) { if (GetProjectTreeNode(project) == null) { // Add a new tree node. IProjectContent projectContent = GetProjectContent(project); if (projectContent != null) { TestProject testProject = new TestProject(project, projectContent); TestProjectTreeNode node = new TestProjectTreeNode(testProject); if (Nodes.Count == 0) { node.AddTo(this); } else { AllTestsTreeNode allTestsNode = GetAllTestsNode(); allTestsNode.AddProjectNode(node); } // Sort the nodes. SortNodes(Nodes, true); } } } }
void AddProjectTreeNodeToTree(TestProjectTreeNode node) { if (Nodes.Count == 0) { node.AddTo(this); } else { AllTestsTreeNode allTestsNode = GetAllTestsNode(); allTestsNode.AddProjectNode(node); } }
/// <summary> /// Adds a new All Tests root node. /// </summary> void AddAllTestsNode() { // Save existing nodes (should only be one) before // clearing so we can add these to the new All Tests node. TreeNode[] projectNodes = new TreeNode[Nodes.Count]; Nodes.CopyTo(projectNodes, 0); Nodes.Clear(); allTestsNode = new AllTestsTreeNode(); allTestsNode.Disposed += AllTestsNodeDisposed; Nodes.Add(allTestsNode); // Add the original project nodes to the new // All Tests node. foreach (TestProjectTreeNode node in projectNodes) { allTestsNode.AddProjectNode(node); } }
/// <summary> /// Ensures that if the TreeView's Clear method is called /// directly the test tree does not think there is still /// an All Tests node. /// </summary> void AllTestsNodeDisposed(object source, EventArgs e) { allTestsNode.Disposed -= AllTestsNodeDisposed; allTestsNode = null; }
/// <summary> /// Ensures that if the TreeView's Clear method is called /// directly the test tree does not think there is still /// an All Tests node. /// </summary> void AllTestsNodeDisposed(object source, EventArgs e) { allTestsNode.Disposed -= AllTestsNodeDisposed; allTestsNode = null; }
/// <summary> /// Adds a new All Tests root node. /// </summary> void AddAllTestsNode() { // Save existing nodes (should only be one) before // clearing so we can add these to the new All Tests node. TreeNode[] projectNodes = new TreeNode[Nodes.Count]; Nodes.CopyTo(projectNodes, 0); Nodes.Clear(); allTestsNode = new AllTestsTreeNode(); allTestsNode.Disposed += AllTestsNodeDisposed; Nodes.Add(allTestsNode); // Add the original project nodes to the new // All Tests node. foreach (TestProjectTreeNode node in projectNodes) { allTestsNode.AddProjectNode(node); } }