Beispiel #1
0
        protected void VerifyOperationTreeForTest <TSyntaxNode>(CSharpCompilation compilation, string expectedOperationTree)
            where TSyntaxNode : SyntaxNode
        {
            var actualOperationTree = GetOperationTreeForTest <TSyntaxNode>(compilation);

            OperationTreeVerifier.Verify(expectedOperationTree, actualOperationTree);
        }
Beispiel #2
0
        protected void VerifyOperationTreeForTest <TSyntaxNode>(string testSrc, string expectedOperationTree, CSharpCompilationOptions compilationOptions = null, CSharpParseOptions parseOptions = null)
            where TSyntaxNode : SyntaxNode
        {
            var actualOperationTree = GetOperationTreeForTest <TSyntaxNode>(testSrc, expectedOperationTree, compilationOptions, parseOptions);

            OperationTreeVerifier.Verify(expectedOperationTree, actualOperationTree);
        }
Beispiel #3
0
        protected string GetOperationTreeForTest <TSyntaxNode>(CSharpCompilation compilation)
            where TSyntaxNode : SyntaxNode
        {
            var operation = GetOperationForTest <TSyntaxNode>(compilation);

            return(operation != null?OperationTreeVerifier.GetOperationTree(operation) : null);
        }
Beispiel #4
0
        protected void VerifyOperationTreeForTest <TSyntaxNode>(CSharpCompilation compilation, string expectedOperationTree, Action <IOperation> AdditionalOperationTreeVerifier = null)
            where TSyntaxNode : SyntaxNode
        {
            var actualOperation     = GetOperationForTest <TSyntaxNode>(compilation);
            var actualOperationTree = GetOperationTreeForTest(actualOperation);

            OperationTreeVerifier.Verify(expectedOperationTree, actualOperationTree);
            AdditionalOperationTreeVerifier?.Invoke(actualOperation);
        }
Beispiel #5
0
        protected string GetOperationTreeForTest <TSyntaxNode>(CSharpCompilation compilation)
            where TSyntaxNode : SyntaxNode
        {
            var        tree       = compilation.SyntaxTrees[0];
            var        model      = compilation.GetSemanticModel(tree);
            SyntaxNode syntaxNode = GetSyntaxNodeOfTypeForBinding <TSyntaxNode>(GetSyntaxNodeList(tree));

            if (syntaxNode == null)
            {
                return(null);
            }

            var operation = model.GetOperationInternal(syntaxNode);

            return(operation != null?OperationTreeVerifier.GetOperationTree(operation) : null);
        }
        internal string TryCreate(string name, string languageName, string source, Func <SemanticModel, SyntaxNode> nodeGetter)
        {
            var tree        = CreateTree(languageName, source);
            var compilation = CreateCompilation(languageName, tree);
            var model       = compilation.GetSemanticModel(tree, ignoreAccessibility: true);

            var node = nodeGetter(model);

            if (node == null)
            {
                // no node we are looking for
                return(null);
            }

            var operation             = model.GetOperationInternal(node);
            var expectedOperationTree = operation != null?OperationTreeVerifier.GetOperationTree(operation) : null;

            return(languageName == LanguageNames.CSharp ?
                   CreateCSharpUnitTest(name, model, node, expectedOperationTree) :
                   CreateVBUnitTest(name, model, node, expectedOperationTree));
        }
Beispiel #7
0
 protected string GetOperationTreeForTest(IOperation operation)
 {
     return(operation != null?OperationTreeVerifier.GetOperationTree(operation) : null);
 }