public void TestExpressionBody() { var syntax = SyntaxFactory.ConstructorDeclaration(SyntaxFactory.Identifier("Anything")) .WithExpressionBody(SyntaxFactory.ArrowExpressionClause(SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression))); Assert.Same(syntax.ExpressionBody, BaseMethodDeclarationSyntaxExtensions.ExpressionBody(syntax)); }
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()); }
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)); }
public void TestExpressionBody_Destructor() { var syntax = SyntaxFactory.DestructorDeclaration(SyntaxFactory.Identifier("Anything")); Assert.Null(BaseMethodDeclarationSyntaxExtensions.ExpressionBody(syntax)); }