Jo Shields a575963da9 Imported Upstream version 3.6.0
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
2014-08-13 10:39:27 +01:00

97 lines
3.3 KiB
C#

// Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information.
using System.Web.Razor.Parser;
using System.Web.Razor.Parser.SyntaxTree;
using System.Web.Razor.Test.Framework;
using Xunit;
namespace System.Web.Razor.Test.Parser.VB
{
// VB Exit Statement: http://msdn.microsoft.com/en-us/library/t2at9t47.aspx
public class VBExitStatementTest : VBHtmlCodeParserTestBase
{
[Fact]
public void VB_Do_Statement_With_Exit()
{
ParseBlockTest(@"@Do While True
Exit Do
Loop
' Not in the block!",
new StatementBlock(
Factory.CodeTransition(SyntaxConstants.TransitionString)
.Accepts(AcceptedCharacters.None),
Factory.Code("Do While True\r\n Exit Do\r\nLoop\r\n")
.AsStatement()
.Accepts(AcceptedCharacters.AnyExceptNewline)));
}
[Fact]
public void VB_For_Statement_With_Exit()
{
ParseBlockTest(@"@For i = 1 To 12
Exit For
Next i
' Not in the block!",
new StatementBlock(
Factory.CodeTransition(SyntaxConstants.TransitionString)
.Accepts(AcceptedCharacters.None),
Factory.Code("For i = 1 To 12\r\n Exit For\r\nNext i\r\n")
.AsStatement()
.Accepts(AcceptedCharacters.AnyExceptNewline)));
}
[Fact]
public void VB_Select_Statement_With_Exit()
{
ParseBlockTest(@"@Select Case Foo
Case 1
Exit Select
Case 2
Exit Select
End Select
' Not in the block!",
new StatementBlock(
Factory.CodeTransition(SyntaxConstants.TransitionString)
.Accepts(AcceptedCharacters.None),
Factory.Code("Select Case Foo\r\n Case 1\r\n Exit Select\r\n Case 2\r\n Exit Select\r\nEnd Select\r\n")
.AsStatement()
.Accepts(AcceptedCharacters.None)));
}
[Fact]
public void VB_Try_Statement_With_Exit()
{
ParseBlockTest(@"@Try
Foo()
Exit Try
Catch Bar
Throw Bar
Finally
Baz()
End Try
' Not in the block!",
new StatementBlock(
Factory.CodeTransition(SyntaxConstants.TransitionString)
.Accepts(AcceptedCharacters.None),
Factory.Code("Try\r\n Foo()\r\n Exit Try\r\nCatch Bar\r\n Throw Bar\r\nFinally\r\n Baz()\r\nEnd Try\r\n")
.AsStatement()
.Accepts(AcceptedCharacters.None)));
}
[Fact]
public void VB_While_Statement_With_Exit()
{
ParseBlockTest(@"@While True
Exit While
End While
' Not in the block!",
new StatementBlock(
Factory.CodeTransition(SyntaxConstants.TransitionString)
.Accepts(AcceptedCharacters.None),
Factory.Code("While True\r\n Exit While\r\nEnd While\r\n")
.AsStatement()
.Accepts(AcceptedCharacters.None)));
}
}
}