Browse Source

fixed LambdaExpressionTests

newNRvisualizers
Siegfried Pammer 15 years ago
parent
commit
ef671d32d3
  1. 39
      ICSharpCode.NRefactory.VB.Tests/Parser/Expressions/LambdaExpressionTests.cs

39
ICSharpCode.NRefactory.VB.Tests/Parser/Expressions/LambdaExpressionTests.cs

@ -12,17 +12,15 @@ namespace ICSharpCode.NRefactory.VB.Tests.Dom
[TestFixture] [TestFixture]
public class LambdaExpressionTests public class LambdaExpressionTests
{ {
#region VB.NET static LambdaExpression Parse(string program)
static LambdaExpression ParseVBNet(string program)
{ {
return ParseUtil.ParseExpression<LambdaExpression>(program); return ParseUtil.ParseExpression<LambdaExpression>(program);
} }
[Test] [Test]
public void VBNetLambdaWithParameters() public void LambdaWithParameters()
{ {
LambdaExpression e = ParseVBNet("Function(x As Boolean) x Or True"); LambdaExpression e = Parse("Function(x As Boolean) x Or True");
Assert.AreEqual(1, e.Parameters.Count); Assert.AreEqual(1, e.Parameters.Count);
Assert.AreEqual("x", e.Parameters[0].ParameterName); Assert.AreEqual("x", e.Parameters[0].ParameterName);
Assert.AreEqual("System.Boolean", e.Parameters[0].TypeReference.Type); Assert.AreEqual("System.Boolean", e.Parameters[0].TypeReference.Type);
@ -31,38 +29,38 @@ namespace ICSharpCode.NRefactory.VB.Tests.Dom
} }
[Test] [Test]
public void VBNetLambdaWithoutParameters() public void LambdaWithoutParameters()
{ {
LambdaExpression e = ParseVBNet("Function x Or True"); LambdaExpression e = Parse("Function() x Or True");
Assert.AreEqual(0, e.Parameters.Count); Assert.AreEqual(0, e.Parameters.Count);
Assert.IsTrue(e.ExpressionBody is BinaryOperatorExpression); Assert.IsTrue(e.ExpressionBody is BinaryOperatorExpression);
Assert.IsTrue(e.ReturnType.IsNull, "ReturnType"); Assert.IsTrue(e.ReturnType.IsNull, "ReturnType");
} }
[Test] [Test]
public void VBNetNestedLambda() public void NestedLambda()
{ {
LambdaExpression e = ParseVBNet("Function(x As Boolean) Function(y As Boolean) x And y"); LambdaExpression e = Parse("Function(x As Boolean) Function(y As Boolean) x And y");
Assert.AreEqual(1, e.Parameters.Count); Assert.AreEqual(1, e.Parameters.Count);
Assert.IsTrue(e.ExpressionBody is LambdaExpression); Assert.IsTrue(e.ExpressionBody is LambdaExpression);
Assert.IsTrue(e.ReturnType.IsNull, "ReturnType"); Assert.IsTrue(e.ReturnType.IsNull, "ReturnType");
} }
[Test] [Test]
public void VBNetSubLambda() public void SubLambda()
{ {
LambdaExpression e = ParseVBNet("Sub(x As Integer) Console.WriteLine(x)"); LambdaExpression e = Parse("Sub(x As Integer) Console.WriteLine(x)");
Assert.AreEqual(1, e.Parameters.Count); Assert.AreEqual(1, e.Parameters.Count);
Assert.IsTrue(e.ExpressionBody is InvocationExpression); Assert.IsTrue(e.StatementBody is ExpressionStatement);
Assert.IsNotNull(e.ReturnType); Assert.IsNotNull(e.ReturnType);
Assert.AreEqual("System.Void", e.ReturnType.Type); Assert.AreEqual("System.Void", e.ReturnType.Type);
Assert.IsTrue(e.ReturnType.IsKeyword); Assert.IsTrue(e.ReturnType.IsKeyword);
} }
[Test] [Test]
public void VBNetSubWithStatementLambda() public void SubWithStatementLambda()
{ {
LambdaExpression e = ParseVBNet("Sub(x As Integer) Call Console.WriteLine(x)"); LambdaExpression e = Parse("Sub(x As Integer) Call Console.WriteLine(x)");
Assert.AreEqual(1, e.Parameters.Count); Assert.AreEqual(1, e.Parameters.Count);
Assert.IsTrue(e.StatementBody is ExpressionStatement); Assert.IsTrue(e.StatementBody is ExpressionStatement);
Assert.IsNotNull(e.ReturnType); Assert.IsNotNull(e.ReturnType);
@ -71,9 +69,9 @@ namespace ICSharpCode.NRefactory.VB.Tests.Dom
} }
[Test] [Test]
public void VBNetMultilineSubLambda() public void MultilineSubLambda()
{ {
LambdaExpression e = ParseVBNet("Sub(x As Integer)\n" + LambdaExpression e = Parse("Sub(x As Integer)\n" +
" For i As Integer = 0 To x\n" + " For i As Integer = 0 To x\n" +
" Console.WriteLine(i)\n" + " Console.WriteLine(i)\n" +
" Next\n" + " Next\n" +
@ -91,9 +89,9 @@ namespace ICSharpCode.NRefactory.VB.Tests.Dom
} }
[Test] [Test]
public void VBNetMultilineFunctionLambda() public void MultilineFunctionLambda()
{ {
LambdaExpression e = ParseVBNet("Function(x As Integer)\n" + LambdaExpression e = Parse("Function(x As Integer)\n" +
" Dim prod As Integer = 1\n" + " Dim prod As Integer = 1\n" +
" For i As Integer = 1 To x\n" + " For i As Integer = 1 To x\n" +
" prod = prod * i\n" + " prod = prod * i\n" +
@ -113,9 +111,9 @@ namespace ICSharpCode.NRefactory.VB.Tests.Dom
} }
[Test] [Test]
public void VBNetMultilineFunctionWithReturnTypeLambda() public void MultilineFunctionWithReturnTypeLambda()
{ {
LambdaExpression e = ParseVBNet("Function(x As Integer) As Integer\n" + LambdaExpression e = Parse("Function(x As Integer) As Integer\n" +
" Dim prod As Integer = 1\n" + " Dim prod As Integer = 1\n" +
" For i As Integer = 1 To x\n" + " For i As Integer = 1 To x\n" +
" prod = prod * i\n" + " prod = prod * i\n" +
@ -135,6 +133,5 @@ namespace ICSharpCode.NRefactory.VB.Tests.Dom
Assert.IsTrue(b.Children[1] is ForNextStatement); Assert.IsTrue(b.Children[1] is ForNextStatement);
Assert.IsTrue(b.Children[2] is ReturnStatement); Assert.IsTrue(b.Children[2] is ReturnStatement);
} }
#endregion
} }
} }

Loading…
Cancel
Save