コード例 #1
0
        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.");
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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");
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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();
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        public void TestsNamespaceNodeFullNamespace()
        {
            TestNamespaceTreeNode node = (TestNamespaceTreeNode)testsNamespaceNode;

            Assert.AreEqual("RootNamespace.Tests", node.FullNamespace);
        }
コード例 #8
0
        public void RootNamespaceNodeFullNamespace()
        {
            TestNamespaceTreeNode node = (TestNamespaceTreeNode)rootNamespaceNode;

            Assert.AreEqual("RootNamespace", node.FullNamespace);
        }