示例#1
0
        public void NewClassInParserInfo()
        {
            // Create new compilation unit with extra class.
            DefaultCompilationUnit newUnit = new DefaultCompilationUnit(projectContent);
            MockClass newClass             = new MockClass(projectContent, "RootNamespace.MyNewTestFixture");

            newClass.Attributes.Add(new MockAttribute("TestFixture"));
            newUnit.Classes.Add(newClass);

            // Update TestProject's parse info.
            testProject.UpdateParseInfo(null, newUnit);

            Assert.IsTrue(testProject.TestClasses.Contains("RootNamespace.MyNewTestFixture"));
        }
        public void NewTestClassInNewCompilationUnitAddedToTestProjectTestClasses()
        {
            MockClass myNewTestClass = MockClass.CreateMockClassWithoutAnyAttributes();

            myNewTestClass.SetDotNetName("MyNewTests");
            testFrameworks.AddTestClass(myNewTestClass);

            DefaultCompilationUnit newUnit = new DefaultCompilationUnit(myTestClass.ProjectContent);

            newUnit.Classes.Add(myTestClass);
            newUnit.Classes.Add(myNewTestClass);

            testProject.UpdateParseInfo(oldUnit, newUnit);

            Assert.AreEqual(myNewTestClass, testProject.TestClasses[1].Class);
        }
        public void MethodRemovedInParserInfo()
        {
            // Create old compilation unit.
            DefaultCompilationUnit oldUnit = new DefaultCompilationUnit(projectContent);

            oldUnit.Classes.Add(testClass.Class);

            // Create new compilation unit.
            DefaultCompilationUnit newUnit = new DefaultCompilationUnit(projectContent);

            newUnit.Classes.Add(testClass.Class);

            // Add a new method to a new compound class.
            MockClass compoundClass = new MockClass(projectContent, "RootNamespace.MyTestFixture");

            compoundClass.Attributes.Add(new MockAttribute("TestFixture"));
            MockClass mockClass = (MockClass)testClass.Class;

            mockClass.SetCompoundClass(compoundClass);

            // Monitor test methods removed.
            List <TestMember> methodsRemoved = new List <TestMember>();

            testClass.TestMembers.TestMemberRemoved += delegate(Object source, TestMemberEventArgs e)
            { methodsRemoved.Add(e.TestMember); };

            // Update TestProject's parse info.
            testProject.UpdateParseInfo(oldUnit, newUnit);

            Assert.IsFalse(testClass.TestMembers.Contains("TestMethod"));
            Assert.AreEqual(1, methodsRemoved.Count);
            Assert.AreSame(testMethod.Member, methodsRemoved[0].Member);
        }
        public void Init()
        {
            // Create a project to display.
            project      = new MockCSharpProject();
            project.Name = "TestProject";
            ReferenceProjectItem nunitFrameworkReferenceItem = new ReferenceProjectItem(project);

            nunitFrameworkReferenceItem.Include = "NUnit.Framework";
            ProjectService.AddProjectItem(project, nunitFrameworkReferenceItem);

            // Add a test class.
            projectContent          = new MockProjectContent();
            projectContent.Language = LanguageProperties.None;
            MockClass c = new MockClass("RootNamespace.MyTestFixture");

            c.Attributes.Add(new MockAttribute("TestFixture"));
            c.ProjectContent = projectContent;
            c.SetCompoundClass(c);
            MockMethod test1Method = new MockMethod("Test1");

            test1Method.DeclaringType = c;
            test1Method.Attributes.Add(new MockAttribute("Test"));
            c.Methods.Add(test1Method);

            // Test 2 method is from a duplicate test class.
            MockMethod test2Method = new MockMethod("Test2");

            test2Method.DeclaringType = c;
            test2Method.Attributes.Add(new MockAttribute("Test"));
            c.Methods.Add(test2Method);
            projectContent.Classes.Add(c);

            testProject = new TestProject(project, projectContent);

            // Make sure test methods are created, otherwise
            // the Test2 method will never be looked at due to lazy evaluation
            // of test method.s
            int count = testProject.TestClasses[0].TestMethods.Count;

            // Change the name of the second test class.
            DefaultCompilationUnit oldUnit = new DefaultCompilationUnit(projectContent);

            oldUnit.Classes.Add(c);
            c.Methods.Remove(test2Method);             // Remove duplicate test class method.


            // Create new compilation unit with inner class that has its method renamed.
            DefaultCompilationUnit newUnit = new DefaultCompilationUnit(projectContent);
            MockClass newTestClass         = new MockClass("RootNamespace.MyNewTestFixture");

            newTestClass.ProjectContent = projectContent;
            newTestClass.Attributes.Add(new MockAttribute("TestFixture"));
            newTestClass.SetCompoundClass(newTestClass);
            projectContent.Classes.Add(newTestClass);
            newTestClass.Methods.Add(test2Method);
            newUnit.Classes.Add(newTestClass);

            testProject.UpdateParseInfo(oldUnit, newUnit);
        }
        public void NewClassInParserInfo()
        {
            // Create old compilation unit.
            DefaultCompilationUnit oldUnit = new DefaultCompilationUnit(projectContent);
            MockClass mockClass            = (MockClass)testClass.Class;

            mockClass.SetCompoundClass(mockClass);
            oldUnit.Classes.Add(testClass.Class);

            // Create new compilation unit with extra class.
            DefaultCompilationUnit newUnit = new DefaultCompilationUnit(projectContent);

            newUnit.Classes.Add(testClass.Class);
            MockClass newClass = new MockClass("RootNamespace.MyNewTestFixture");

            newClass.Attributes.Add(new MockAttribute("TestFixture"));
            newClass.ProjectContent = projectContent;
            newClass.SetCompoundClass(newClass);
            newUnit.Classes.Add(newClass);

            // Update TestProject's parse info.
            testProject.UpdateParseInfo(oldUnit, newUnit);

            Assert.IsTrue(testProject.TestClasses.Contains("RootNamespace.MyNewTestFixture"));
            Assert.AreEqual(1, classesAdded.Count);
            Assert.AreSame(newClass, classesAdded[0].Class);
        }
示例#6
0
        public void NewClassMethodAdded()
        {
            MockClass  c      = (MockClass)testFixtureNode.Class;
            MockMethod method = new MockMethod(c, "Apple");

            method.Attributes.Add(new MockAttribute("Test"));
            c.SetCompoundClass(c);
            c.Methods.Add(method);

            // Add the test method to the class.
            DefaultCompilationUnit newUnit = new DefaultCompilationUnit(projectContent);

            newUnit.Classes.Add(c);
            testProject.UpdateParseInfo(null, newUnit);

            // Check that the new tree node is inserted before the
            // existing method node.
            TestTreeNode insertedNode = testFixtureNode.FirstNode as TestTreeNode;

            Assert.AreEqual("Apple", insertedNode.Text);
        }