public void Test_NewClassAddedToNewFile()
        {
            var newSyntaxTree = Helper.GetSyntaxTree("Test_NewClassAddedToNewFile");

            var codeChangesVisitor = new CodeChangesVisitor();

            codeChangesVisitor.Visit(newSyntaxTree, null);

            codeChangesVisitor.UpdatedMethods.Count.Should().Be(0);
            codeChangesVisitor.NewClassses.Count.Should().Be(1);
        }
        public void Test_MethodUpdate_UpdateLine()
        {
            var newSyntaxTree = Helper.GetSyntaxTree("Test_MethodUpdate_UpdateLine");
            var oldSyntaxTree = Helper.GetSyntaxTree("Test_MethodUpdate_UpdateLine.Old");

            var codeChangesVisitor = new CodeChangesVisitor();

            codeChangesVisitor.Visit(newSyntaxTree, oldSyntaxTree);

            codeChangesVisitor.UpdatedMethods.Count.Should().Be(1);
            codeChangesVisitor.NewClassses.Count.Should().Be(0);
        }
        public void Test_NewPropertyAdded()
        {
            var newSyntaxTree = Helper.GetSyntaxTree("Test_NewPropertyAdded");
            var oldSyntaxTree = Helper.GetSyntaxTree("Test_NewPropertyAdded.Old");

            var codeChangesVisitor = new CodeChangesVisitor();

            codeChangesVisitor.Visit(newSyntaxTree, oldSyntaxTree);

            codeChangesVisitor.UpdatedMethods.Count.Should().Be(0);
            codeChangesVisitor.NewClassses.Count.Should().Be(0);
            codeChangesVisitor.NewFields.Count.Should().Be(0);
            codeChangesVisitor.NewProperties.Count.Should().Be(1);
        }
Esempio n. 4
0
        public CodeChangeRequest CompareTree(SyntaxTree newSyntaxTree, SyntaxTree oldSyntaxTree,
                                             SemanticModel semanticModel)
        {
            var codeChangesVisitor = new CodeChangesVisitor();

            codeChangesVisitor.Visit(newSyntaxTree, oldSyntaxTree);

            var updateMethods = new List <Method>();

            foreach (var mds in codeChangesVisitor.UpdatedMethods)
            {
                var interpreterHandler = new StatementInterpreterHandler(mds, semanticModel);

                var method = interpreterHandler.GetMethod();
                updateMethods.Add(method);
            }

            var request = new CodeChangeRequest();

            request.UpdateMethods = updateMethods;

            return(request);
        }