1
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
2
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
6
using System.Collections.Generic;
8
using ICSharpCode.NRefactory.VB.Ast;
9
using ICSharpCode.NRefactory.VB.Visitors;
10
using NUnit.Framework;
12
namespace ICSharpCode.NRefactory.VB.Tests.Output.CodeDom.Tests
15
public class InvocationExpressionsTests
18
public void IdentifierOnlyInvocation()
20
// InitializeComponents();
21
SimpleNameExpression identifier = new SimpleNameExpression("InitializeComponents");
22
InvocationExpression invocation = new InvocationExpression(identifier, new List<Expression>());
23
object output = invocation.AcceptVisitor(new CodeDomVisitor(), null);
24
Assert.IsTrue(output is CodeMethodInvokeExpression);
25
CodeMethodInvokeExpression mie = (CodeMethodInvokeExpression)output;
26
Assert.AreEqual("InitializeComponents", mie.Method.MethodName);
27
Assert.IsTrue(mie.Method.TargetObject is CodeThisReferenceExpression);
31
public void MethodOnThisReferenceInvocation()
33
// InitializeComponents();
34
MemberReferenceExpression field = new MemberReferenceExpression(new ThisReferenceExpression(), "InitializeComponents");
35
InvocationExpression invocation = new InvocationExpression(field, new List<Expression>());
36
object output = invocation.AcceptVisitor(new CodeDomVisitor(), null);
37
Assert.IsTrue(output is CodeMethodInvokeExpression);
38
CodeMethodInvokeExpression mie = (CodeMethodInvokeExpression)output;
39
Assert.AreEqual("InitializeComponents", mie.Method.MethodName);
40
Assert.IsTrue(mie.Method.TargetObject is CodeThisReferenceExpression);
44
public void InvocationOfStaticMethod()
46
// System.Drawing.Color.FromArgb();
47
MemberReferenceExpression field = new MemberReferenceExpression(new SimpleNameExpression("System"), "Drawing");
48
field = new MemberReferenceExpression(field, "Color");
49
field = new MemberReferenceExpression(field, "FromArgb");
50
InvocationExpression invocation = new InvocationExpression(field, new List<Expression>());
51
object output = invocation.AcceptVisitor(new CodeDomVisitor(), null);
52
Assert.IsTrue(output is CodeMethodInvokeExpression);
53
CodeMethodInvokeExpression mie = (CodeMethodInvokeExpression)output;
54
Assert.AreEqual("FromArgb", mie.Method.MethodName);
55
Assert.IsTrue(mie.Method.TargetObject is CodeTypeReferenceExpression);
56
Assert.AreEqual("System.Drawing.Color", (mie.Method.TargetObject as CodeTypeReferenceExpression).Type.BaseType);