예제 #1
0
        public void TestExpressionBody()
        {
            var syntax = SyntaxFactory.ConstructorDeclaration(SyntaxFactory.Identifier("Anything"))
                         .WithExpressionBody(SyntaxFactory.ArrowExpressionClause(SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression)));

            Assert.Same(syntax.ExpressionBody, BaseMethodDeclarationSyntaxExtensions.ExpressionBody(syntax));
        }
예제 #2
0
        public void TestExpressionBody_Method()
        {
            var syntax = SyntaxFactory.MethodDeclaration(
                SyntaxFactory.PredefinedType(SyntaxFactory.Token(SyntaxKind.IntKeyword)),
                SyntaxFactory.Identifier("Anything"));

            Assert.Null(BaseMethodDeclarationSyntaxExtensions.ExpressionBody(syntax));

            var expressionBody = SyntaxFactory.ArrowExpressionClause(SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression));

            syntax = syntax.WithExpressionBody(expressionBody);
            Assert.NotNull(BaseMethodDeclarationSyntaxExtensions.ExpressionBody(syntax));
            Assert.Equal(SyntaxKind.NullLiteralExpression, BaseMethodDeclarationSyntaxExtensions.ExpressionBody(syntax).Expression.Kind());
        }
예제 #3
0
        public void TestExpressionBody_ConversionOperator()
        {
            var syntax = SyntaxFactory.ConversionOperatorDeclaration(
                SyntaxFactory.Token(SyntaxKind.ExplicitKeyword),
                SyntaxFactory.PredefinedType(SyntaxFactory.Token(SyntaxKind.IntKeyword)));

            Assert.Null(BaseMethodDeclarationSyntaxExtensions.ExpressionBody(syntax));

            var expressionBody = SyntaxFactory.ArrowExpressionClause(SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression));

            syntax = syntax.WithExpressionBody(expressionBody);
            Assert.NotNull(BaseMethodDeclarationSyntaxExtensions.ExpressionBody(syntax));
            Assert.Equal(SyntaxKind.NullLiteralExpression, BaseMethodDeclarationSyntaxExtensions.ExpressionBody(syntax).Expression.Kind());
        }
        public void TestWithExpressionBody()
        {
            var syntax = SyntaxFactory.DestructorDeclaration(SyntaxFactory.Identifier("Anything"));

            // With default value is allowed
            var syntaxWithDefaultBody = DestructorDeclarationSyntaxExtensions.WithExpressionBody(syntax, null);

            Assert.Null(BaseMethodDeclarationSyntaxExtensions.ExpressionBody(syntaxWithDefaultBody));

            // Non-default throws an exception
            var expressionBody = SyntaxFactory.ArrowExpressionClause(SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression));

            Assert.Throws <NotSupportedException>(() => DestructorDeclarationSyntaxExtensions.WithExpressionBody(syntax, expressionBody));
        }
예제 #5
0
        public void TestExpressionBody_Destructor()
        {
            var syntax = SyntaxFactory.DestructorDeclaration(SyntaxFactory.Identifier("Anything"));

            Assert.Null(BaseMethodDeclarationSyntaxExtensions.ExpressionBody(syntax));
        }