public void EmptyNamespaceNodesRemovedWhenChildNamespaceNodeNotExpanded() { // Expand the project node. TestProjectTreeNode projectNode = (TestProjectTreeNode)pad.TestTreeView.Nodes[0]; projectNode.Expanding(); // Add a new class to a non-empty namespace so it gets // added to a new namespace node. MockClass mockClass = new MockClass("RootNamespace.Tests.MyTestFixture"); TestClass testClass = new TestClass(mockClass, testFrameworks); projectNode.TestProject.TestClasses.Add(testClass); // Get the root namespace node. TestNamespaceTreeNode rootNamespaceNode = (TestNamespaceTreeNode)projectNode.Nodes[0]; // Check that the rootNamespaceNode does not consider itself // empty. Assert.IsFalse(rootNamespaceNode.IsEmpty); // Expand RootNamespace tree node. rootNamespaceNode.Expanding(); // Remove the test class from the test project. projectNode.TestProject.TestClasses.Remove(testClass); Assert.AreEqual(0, projectNode.Nodes.Count, "Namespace nodes should have been removed from project node."); }
public void ClassNodeAddedAfterNamespaceNodeExpanded() { ClassNodeAddedAfterProjectNodeExpanded(); // Expand the namespace node. TestProjectTreeNode projectNode = (TestProjectTreeNode)pad.TestTreeView.Nodes[0]; TestNamespaceTreeNode parentNamespaceNode = (TestNamespaceTreeNode)projectNode.Nodes[0]; parentNamespaceNode.Expanding(); // Add a new class to a namespace so it gets // added to a new namespace node. MockClass mockClass = new MockClass("RootNamespace.Tests.MyTestFixture"); TestClass testClass = new TestClass(mockClass, testFrameworks); projectNode.TestProject.TestClasses.Add(testClass); // Get the newly added namespace node. TestNamespaceTreeNode namespaceNode = null; foreach (ExtTreeNode node in parentNamespaceNode.Nodes) { namespaceNode = node as TestNamespaceTreeNode; if (namespaceNode != null) { break; } } Assert.AreEqual(2, parentNamespaceNode.Nodes.Count, "Namespace node should have two child nodes."); Assert.IsNotNull(namespaceNode, "Namespace node has not been added"); Assert.AreEqual("Tests", namespaceNode.Text); }
public void ClassOccursBeforeNamespaceOnInitialLoad() { MockCSharpProject project = new MockCSharpProject(); project.Name = "TestProject"; ReferenceProjectItem nunitFrameworkReferenceItem = new ReferenceProjectItem(project); nunitFrameworkReferenceItem.Include = "NUnit.Framework"; ProjectService.AddProjectItem(project, nunitFrameworkReferenceItem); List <IProject> projects = new List <IProject>(); projects.Add(project); // Add a test class with a TestFixture attributes. TestClass testClass = CreateTestClass("MyTests.MyTestFixture"); projectContent.Classes.Add(testClass.Class); // Add a second class with no namespace. testClass = CreateTestClass("AppleTestFixture"); projectContent.Classes.Add(testClass.Class); // Add another class that exists in a namespace inside // MyTests. testClass = CreateTestClass("MyTests.ZebraTests.AddZebra"); projectContent.Classes.Add(testClass.Class); // Load the project into the tree. treeView.Clear(); treeView.AddProject(project); projectNode = (TestProjectTreeNode)treeView.Nodes[0]; projectNode.PerformInitialization(); ExtTreeNode treeNode = (ExtTreeNode)projectNode.LastNode; treeNode.PerformInitialization(); // Get the class node without a root namespace and // the my tests namespace node. TestClassTreeNode appleTestFixtureNode = projectNode.FirstNode as TestClassTreeNode; TestNamespaceTreeNode myTestsNamespaceNode = projectNode.LastNode as TestNamespaceTreeNode; // Get the zebra namespace tree node. TestNamespaceTreeNode zebraTestsNamespaceNode = treeNode.LastNode as TestNamespaceTreeNode; Assert.IsNotNull(appleTestFixtureNode); Assert.AreEqual(appleTestFixtureNode.Text, "AppleTestFixture"); Assert.IsNotNull(myTestsNamespaceNode); Assert.AreEqual(myTestsNamespaceNode.Text, "MyTests"); Assert.IsNotNull(zebraTestsNamespaceNode); Assert.AreEqual(zebraTestsNamespaceNode.Text, "ZebraTests"); }
public void AddClassInNewNamespace() { // Create the new test class. TestClass testClass = CreateTestClass("Apple.MyTestFixture"); // Add the class to the existing classes. testProject.TestClasses.Add(testClass); // Check the namespace node is inserted before the // existing namespace node. TestNamespaceTreeNode namespaceTreeNode = (TestNamespaceTreeNode)projectNode.FirstNode; Assert.AreEqual("Apple", namespaceTreeNode.Text); }
public void Init() { // Create a project to display in the test tree view. MockCSharpProject project = new MockCSharpProject(); project.Name = "TestProject"; ReferenceProjectItem nunitFrameworkReferenceItem = new ReferenceProjectItem(project); nunitFrameworkReferenceItem.Include = "NUnit.Framework"; ProjectService.AddProjectItem(project, nunitFrameworkReferenceItem); List <IProject> projects = new List <IProject>(); projects.Add(project); // Add a test class with a TestFixture attributes. projectContent = new MockProjectContent(); projectContent.Language = LanguageProperties.None; TestClass testClass = CreateTestClass("MyTests.MyTestFixture"); projectContent.Classes.Add(testClass.Class); // Add two methods to the test class only // one of which has test attributes. MockMethod testMethod = new MockMethod("NameExists"); testMethod.Attributes.Add(new MockAttribute("Test")); testMethod.DeclaringType = testClass.Class; testClass.Class.Methods.Add(testMethod); // Init mock project content to be returned. treeView = new DummyParserServiceTestTreeView(); treeView.ProjectContentForProject = projectContent; // Load the projects into the test tree view. treeView.AddProjects(projects); projectNode = (TestProjectTreeNode)treeView.Nodes[0]; testProject = projectNode.TestProject; // Initialise the root node so the child nodes are created. projectNode.PerformInitialization(); myTestsNamespaceNode = (TestNamespaceTreeNode)projectNode.FirstNode; // Initialise the first namespace node. myTestsNamespaceNode.PerformInitialization(); testFixtureNode = (TestClassTreeNode)myTestsNamespaceNode.FirstNode; // Initialise the test method tree nodes. testFixtureNode.PerformInitialization(); }
public void EmptyNamespaceNodesRemoved() { // Expand the project node. TestProjectTreeNode projectNode = (TestProjectTreeNode)pad.TestTreeView.Nodes[0]; projectNode.Expanding(); // Add a new class to a non-empty namespace so it gets // added to a new namespace node. MockClass mockClass = new MockClass("RootNamespace.Tests.MyTestFixture"); TestClass testClass = new TestClass(mockClass, testFrameworks); projectNode.TestProject.TestClasses.Add(testClass); // Expand RootNamespace tree node. TestNamespaceTreeNode rootNamespaceNode = (TestNamespaceTreeNode)projectNode.Nodes[0]; rootNamespaceNode.Expanding(); // Expand the Tests namespace tree node. TestNamespaceTreeNode testsNamespaceNode = (TestNamespaceTreeNode)rootNamespaceNode.Nodes[0]; testsNamespaceNode.Expanding(); // Get the test class node. TestClassTreeNode classNode = (TestClassTreeNode)testsNamespaceNode.Nodes[0]; // Remove the test class from the test project. projectNode.TestProject.TestClasses.Remove(testClass); Assert.AreEqual(0, projectNode.Nodes.Count, "Namespace nodes should have been removed from project node."); // Make sure the two namespace nodes are properly disposed. Assert.IsTrue(testsNamespaceNode.IsDisposed); Assert.IsTrue(rootNamespaceNode.IsDisposed); // Make sure the test class node has been disposed. Assert.IsTrue(classNode.IsDisposed); // Make sure the namespace node Dispose method removes // the TestProject.TestClasses.TestClassAdded event handler. Assert.AreEqual(0, testsNamespaceNode.Nodes.Count); projectNode.TestProject.TestClasses.Add(testClass); Assert.AreEqual(0, testsNamespaceNode.Nodes.Count); }
public void TestsNamespaceNodeFullNamespace() { TestNamespaceTreeNode node = (TestNamespaceTreeNode)testsNamespaceNode; Assert.AreEqual("RootNamespace.Tests", node.FullNamespace); }
public void RootNamespaceNodeFullNamespace() { TestNamespaceTreeNode node = (TestNamespaceTreeNode)rootNamespaceNode; Assert.AreEqual("RootNamespace", node.FullNamespace); }