#develop (short for SharpDevelop) is a free IDE for .NET programming languages.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1639 lines
45 KiB

//
// TestFormattingVisitor.cs
//
// Author:
// Mike Krüger <mkrueger@novell.com>
//
// Copyright (c) 2010 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
using System.IO;
using NUnit.Framework;
using ICSharpCode.NRefactory.CSharp;
namespace ICSharpCode.NRefactory.CSharp.FormattingTests
{
[TestFixture()]
public class TestSpacingVisitor : TestBase
{
[Test()]
public void TestFieldSpacesBeforeComma1()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.ClassBraceStyle = BraceStyle.EndOfLine;
policy.SpaceBeforeFieldDeclarationComma = false;
policy.SpaceAfterFieldDeclarationComma = false;
Test(policy, @"class Test {
int a , b, c;
}",
@"class Test {
int a,b,c;
}");
}
[Test()]
public void TestFieldSpacesBeforeComma2 ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.ClassBraceStyle = BraceStyle.EndOfLine;
policy.SpaceBeforeFieldDeclarationComma = true;
policy.SpaceAfterFieldDeclarationComma = true;
Test (policy, @"class Test {
int a , b, c;
}",
@"class Test {
int a , b , c;
}");
}
[Test()]
public void TestFixedFieldSpacesBeforeComma ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.ClassBraceStyle = BraceStyle.EndOfLine;
policy.SpaceAfterFieldDeclarationComma = true;
policy.SpaceBeforeFieldDeclarationComma = true;
Test (policy, @"class Test {
fixed int a[10] , b[10], c[10];
}",
@"class Test {
fixed int a[10] , b[10] , c[10];
}");
}
[Test()]
public void TestConstFieldSpacesBeforeComma ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.ClassBraceStyle = BraceStyle.EndOfLine;
policy.SpaceAfterFieldDeclarationComma = false;
policy.SpaceBeforeFieldDeclarationComma = false;
Test (policy, @"class Test {
const int a = 1 , b = 2, c = 3;
}",
@"class Test {
const int a = 1,b = 2,c = 3;
}");
}
[Test()]
public void TestBeforeMethodDeclarationParentheses ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeMethodDeclarationParentheses = true;
Test (policy, @"public abstract class Test
{
public abstract Test TestMethod();
}",
@"public abstract class Test
{
public abstract Test TestMethod ();
}");
}
[Test()]
public void TestBeforeConstructorDeclarationParenthesesDestructorCase ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeConstructorDeclarationParentheses = true;
Test (policy, @"class Test
{
~Test()
{
}
}",
@"class Test
{
~Test ()
{
}
}");
}
static void TestBinaryOperator (CSharpFormattingOptions policy, string op)
{
var result = GetResult (policy, "class Test { void TestMe () { result = left" + op + "right; } }");
int i1 = result.Text.IndexOf ("left");
int i2 = result.Text.IndexOf ("right") + "right".Length;
if (i1 < 0 || i2 < 0)
Assert.Fail ("text invalid:" + result.Text);
Assert.AreEqual ("left " + op + " right", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestSpacesAroundMultiplicativeOperator ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceAroundMultiplicativeOperator = true;
TestBinaryOperator (policy, "*");
TestBinaryOperator (policy, "/");
}
[Test()]
public void TestSpacesAroundShiftOperator ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceAroundShiftOperator = true;
TestBinaryOperator (policy, "<<");
TestBinaryOperator (policy, ">>");
}
[Test()]
public void TestSpacesAroundAdditiveOperator ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceAroundAdditiveOperator = true;
TestBinaryOperator (policy, "+");
TestBinaryOperator (policy, "-");
}
[Test()]
public void TestSpacesAroundBitwiseOperator ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceAroundBitwiseOperator = true;
TestBinaryOperator (policy, "&");
TestBinaryOperator (policy, "|");
TestBinaryOperator (policy, "^");
}
[Test()]
public void TestSpacesAroundRelationalOperator ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceAroundRelationalOperator = true;
TestBinaryOperator (policy, "<");
TestBinaryOperator (policy, "<=");
TestBinaryOperator (policy, ">");
TestBinaryOperator (policy, ">=");
}
[Test()]
public void TestSpacesAroundEqualityOperator ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceAroundEqualityOperator = true;
TestBinaryOperator (policy, "==");
TestBinaryOperator (policy, "!=");
}
[Test()]
public void TestSpacesAroundLogicalOperator ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceAroundLogicalOperator = true;
TestBinaryOperator (policy, "&&");
TestBinaryOperator (policy, "||");
}
[Test()]
public void TestConditionalOperator ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeConditionalOperatorCondition = true;
policy.SpaceAfterConditionalOperatorCondition = true;
policy.SpaceBeforeConditionalOperatorSeparator = true;
policy.SpaceAfterConditionalOperatorSeparator = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
result = condition?trueexpr:falseexpr;
}
}");
int i1 = result.Text.IndexOf ("condition");
int i2 = result.Text.IndexOf ("falseexpr") + "falseexpr".Length;
Assert.AreEqual (@"condition ? trueexpr : falseexpr", result.GetText (i1, i2 - i1));
policy.SpaceBeforeConditionalOperatorCondition = false;
policy.SpaceAfterConditionalOperatorCondition = false;
policy.SpaceBeforeConditionalOperatorSeparator = false;
policy.SpaceAfterConditionalOperatorSeparator = false;
result = GetResult (policy, @"class Test {
void TestMe ()
{
result = true ? trueexpr : falseexpr;
}
}");
i1 = result.Text.IndexOf ("true");
i2 = result.Text.IndexOf ("falseexpr") + "falseexpr".Length;
Assert.AreEqual (@"true?trueexpr:falseexpr", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestBeforeMethodCallParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeMethodCallParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
MethodCall();
}
}");
int i1 = result.Text.IndexOf ("MethodCall");
int i2 = result.Text.IndexOf (";") + ";".Length;
Assert.AreEqual (@"MethodCall ();", result.GetText (i1, i2 - i1));
result = GetResult (policy, @"class Test {
void TestMe ()
{
MethodCall ();
}
}");
policy.SpaceBeforeMethodCallParentheses = false;
result = GetResult (policy, result.Text);
i1 = result.Text.IndexOf ("MethodCall");
i2 = result.Text.IndexOf (";") + ";".Length;
Assert.AreEqual (@"MethodCall();", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinMethodCallParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceWithinMethodCallParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
MethodCall(true);
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( true )", result.GetText (i1, i2 - i1));
policy.SpaceWithinMethodCallParentheses = false;
result = GetResult (policy, @"class Test {
void TestMe ()
{
MethodCall( true );
}
}");
i1 = result.Text.LastIndexOf ("(");
i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"(true)", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestBeforeIfParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeIfParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
if(true);
}
}");
int i1 = result.Text.IndexOf ("if");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"if (true)", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinIfParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpacesWithinIfParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
if (true);
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( true )", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestBeforeWhileParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeWhileParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
while(true);
}
}");
int i1 = result.Text.IndexOf ("while");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"while (true)", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinWhileParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpacesWithinWhileParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
while (true);
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( true )", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestBeforeForParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeForParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
for(;;);
}
}");
int i1 = result.Text.IndexOf ("for");
int i2 = result.Text.LastIndexOf ("(") + "(".Length;
Assert.AreEqual (@"for (", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinForParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpacesWithinForParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
for(;;);
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( ;; )", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestBeforeForeachParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeForeachParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
foreach(var o in list);
}
}");
int i1 = result.Text.IndexOf ("foreach");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"foreach (var o in list)", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinForeachParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpacesWithinForeachParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
foreach(var o in list);
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( var o in list )", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestBeforeCatchParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeCatchParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
try {} catch(Exception) {}
}
}");
int i1 = result.Text.IndexOf ("catch");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"catch (Exception)", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinCatchParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpacesWithinCatchParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
try {} catch(Exception) {}
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( Exception )", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestBeforeLockParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeLockParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
lock(this) {}
}
}");
int i1 = result.Text.IndexOf ("lock");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"lock (this)", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinLockParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpacesWithinLockParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
lock(this) {}
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( this )", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestSpacesAfterForSemicolon ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceAfterForSemicolon = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
for (int i;true;i++) ;
}
}");
int i1 = result.Text.LastIndexOf ("for");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"for (int i; true; i++)", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestSpacesBeforeForSemicolon ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeForSemicolon = true;
policy.SpaceAfterForSemicolon = false;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
for (int i;true;i++) ;
}
}");
int i1 = result.Text.LastIndexOf ("for");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"for (int i ;true ;i++)", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestSpacesAfterTypecast ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceAfterTypecast = true;
var result = GetResult (policy, @"class Test {
Test TestMe ()
{
return (Test)null;
}
}");
int i1 = result.Text.LastIndexOf ("return");
int i2 = result.Text.LastIndexOf ("null") + "null".Length;
Assert.AreEqual (@"return (Test) null", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestBeforeUsingParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeUsingParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
using(a) {}
}
}");
int i1 = result.Text.IndexOf ("using");
int i2 = result.Text.LastIndexOf ("(") + "(".Length;
Assert.AreEqual (@"using (", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinUsingParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpacesWithinUsingParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
using(a) {}
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( a )", result.GetText (i1, i2 - i1));
}
static void TestAssignmentOperator (CSharpFormattingOptions policy, string op)
{
var result = GetResult (policy, "class Test { void TestMe () { left" + op + "right; } }");
int i1 = result.Text.IndexOf ("left");
int i2 = result.Text.IndexOf ("right") + "right".Length;
if (i1 < 0 || i2 < 0)
Assert.Fail ("text invalid:" + result.Text);
Assert.AreEqual ("left " + op + " right", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestAroundAssignmentSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceAroundAssignment = true;
TestAssignmentOperator (policy, "=");
TestAssignmentOperator (policy, "*=");
TestAssignmentOperator (policy, "/=");
TestAssignmentOperator (policy, "+=");
TestAssignmentOperator (policy, "%=");
TestAssignmentOperator (policy, "-=");
TestAssignmentOperator (policy, "<<=");
TestAssignmentOperator (policy, ">>=");
TestAssignmentOperator (policy, "&=");
TestAssignmentOperator (policy, "|=");
TestAssignmentOperator (policy, "^=");
}
[Test()]
public void TestAroundAssignmentSpaceInDeclarations ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceAroundAssignment = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
int left=right;
}
}");
int i1 = result.Text.LastIndexOf ("left");
int i2 = result.Text.LastIndexOf ("right") + "right".Length;
Assert.AreEqual (@"left = right", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestBeforeSwitchParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeSwitchParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
switch (test) { default: break; }
}
}");
int i1 = result.Text.IndexOf ("switch");
int i2 = result.Text.LastIndexOf ("(") + "(".Length;
Assert.AreEqual (@"switch (", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinSwitchParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpacesWithinSwitchParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
switch (test) { default: break; }
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( test )", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpacesWithinParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
c = (test);
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( test )", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinMethodDeclarationParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceWithinMethodDeclarationParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe (int a)
{
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( int a )", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinCastParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpacesWithinCastParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
a = (int)b;
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( int )", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinSizeOfParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpacesWithinSizeOfParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
a = sizeof(int);
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( int )", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestBeforeSizeOfParentheses ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeSizeOfParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
a = sizeof(int);
}
}");
int i1 = result.Text.LastIndexOf ("sizeof");
int i2 = result.Text.LastIndexOf ("(") + "(".Length;
Assert.AreEqual (@"sizeof (", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinTypeOfParenthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpacesWithinTypeOfParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
a = typeof(int);
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( int )", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestBeforeTypeOfParentheses ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeTypeOfParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
a = typeof(int);
}
}");
int i1 = result.Text.LastIndexOf ("typeof");
int i2 = result.Text.LastIndexOf ("(") + "(".Length;
Assert.AreEqual (@"typeof (", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinCheckedExpressionParanthesesSpace ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpacesWithinCheckedExpressionParantheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
a = checked(a + b);
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( a + b )", result.GetText (i1, i2 - i1));
result = GetResult (policy, @"class Test {
void TestMe ()
{
a = unchecked(a + b);
}
}");
result = GetResult (policy, result.Text);
i1 = result.Text.LastIndexOf ("(");
i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( a + b )", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestSpaceBeforeNewParentheses ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeNewParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
new Test();
}
}");
int i1 = result.Text.LastIndexOf ("new");
int i2 = result.Text.LastIndexOf (";") + ";".Length;
Assert.AreEqual (@"new Test ();", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinNewParentheses ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpacesWithinNewParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
new Test (1);
}
}");
int i1 = result.Text.LastIndexOf ("new");
int i2 = result.Text.LastIndexOf (";") + ";".Length;
Assert.AreEqual (@"new Test ( 1 );", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestBetweenEmptyNewParentheses ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpacesBetweenEmptyNewParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
new Test ();
}
}");
int i1 = result.Text.LastIndexOf ("new");
int i2 = result.Text.LastIndexOf (";") + ";".Length;
Assert.AreEqual (@"new Test ( );", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestBeforeNewParameterComma ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeNewParameterComma = true;
policy.SpaceAfterNewParameterComma = false;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
new Test (1,2);
}
}");
int i1 = result.Text.LastIndexOf ("new");
int i2 = result.Text.LastIndexOf (";") + ";".Length;
Assert.AreEqual (@"new Test (1 ,2);", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestAfterNewParameterComma ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceAfterNewParameterComma = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
new Test (1,2);
}
}");
int i1 = result.Text.LastIndexOf ("new");
int i2 = result.Text.LastIndexOf (";") + ";".Length;
Assert.AreEqual (@"new Test (1, 2);", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestFieldDeclarationComma ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeFieldDeclarationComma = false;
policy.SpaceAfterFieldDeclarationComma = true;
var result = GetResult (policy, @"class Test {
int a,b,c;
}");
int i1 = result.Text.LastIndexOf ("int");
int i2 = result.Text.LastIndexOf (";") + ";".Length;
Assert.AreEqual (@"int a, b, c;", result.GetText (i1, i2 - i1));
policy.SpaceBeforeFieldDeclarationComma = true;
result = GetResult (policy, result.Text);
i1 = result.Text.LastIndexOf ("int");
i2 = result.Text.LastIndexOf (";") + ";".Length;
Assert.AreEqual (@"int a , b , c;", result.GetText (i1, i2 - i1));
policy.SpaceBeforeFieldDeclarationComma = false;
policy.SpaceAfterFieldDeclarationComma = false;
result = GetResult (policy, result.Text);
i1 = result.Text.LastIndexOf ("int");
i2 = result.Text.LastIndexOf (";") + ";".Length;
Assert.AreEqual (@"int a,b,c;", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestBeforeMethodDeclarationParameterComma ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeMethodDeclarationParameterComma = true;
policy.SpaceAfterMethodDeclarationParameterComma = false;
var result = GetResult (policy, @"class Test {
public void Foo (int a,int b,int c) {}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"(int a ,int b ,int c)", result.GetText (i1, i2 - i1));
policy.SpaceBeforeMethodDeclarationParameterComma = false;
result = GetResult (policy, result.Text);
i1 = result.Text.LastIndexOf ("(");
i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"(int a,int b,int c)", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestAfterMethodDeclarationParameterComma ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeMethodDeclarationParameterComma = false;
policy.SpaceAfterMethodDeclarationParameterComma = true;
var result = GetResult (policy, @"class Test {
public void Foo (int a,int b,int c) {}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"(int a, int b, int c)", result.GetText (i1, i2 - i1));
policy.SpaceAfterMethodDeclarationParameterComma = false;
result = GetResult (policy, result.Text);
i1 = result.Text.LastIndexOf ("(");
i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"(int a,int b,int c)", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestSpacesInLambdaExpression ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpacesWithinWhileParentheses = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
var v = x=>x!=null;
}
}");
int i1 = result.Text.IndexOf ("x");
int i2 = result.Text.LastIndexOf ("null") + "null".Length;
Assert.AreEqual (@"x => x != null", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestBeforeLocalVariableDeclarationComma ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeLocalVariableDeclarationComma = true;
policy.SpaceAfterLocalVariableDeclarationComma = false;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
int a,b,c;
}
}");
int i1 = result.Text.IndexOf ("int");
int i2 = result.Text.IndexOf (";") + ";".Length;
Assert.AreEqual (@"int a ,b ,c;", result.GetText (i1, i2 - i1));
result = GetResult (policy, result.Text);
policy.SpaceBeforeLocalVariableDeclarationComma = false;
result = GetResult (policy, result.Text);
i1 = result.Text.IndexOf ("int");
i2 = result.Text.IndexOf (";") + ";".Length;
Assert.AreEqual (@"int a,b,c;", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestLocalVariableDeclarationComma ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeLocalVariableDeclarationComma = true;
policy.SpaceAfterLocalVariableDeclarationComma = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
int a = 5,b = 6,c;
}
}");
int i1 = result.Text.IndexOf ("int");
int i2 = result.Text.IndexOf (";") + ";".Length;
Assert.AreEqual (@"int a = 5 , b = 6 , c;", result.GetText (i1, i2 - i1));
result = GetResult (policy, result.Text);
policy.SpaceBeforeLocalVariableDeclarationComma = false;
policy.SpaceAfterLocalVariableDeclarationComma = false;
result = GetResult (policy, result.Text);
i1 = result.Text.IndexOf ("int");
i2 = result.Text.IndexOf (";") + ";".Length;
Assert.AreEqual (@"int a = 5,b = 6,c;", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestLocalVariableWithGenerics ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeLocalVariableDeclarationComma = true;
policy.SpaceAfterLocalVariableDeclarationComma = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
List<Test> a;
}
}");
int i1 = result.Text.IndexOf ("List");
int i2 = result.Text.IndexOf (";") + ";".Length;
Assert.AreEqual (@"List<Test> a;", result.GetText (i1, i2 - i1));
}
#region Constructors
[Test()]
public void TestBeforeConstructorDeclarationParentheses ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeConstructorDeclarationParentheses = true;
var result = GetResult (policy, @"class Test
{
Test()
{
}
}");
Assert.AreEqual (NormalizeNewlines(@"class Test
{
Test ()
{
}
}"), result.Text);
}
[Test()]
public void TestBeforeConstructorDeclarationParameterComma ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeConstructorDeclarationParameterComma = true;
policy.SpaceAfterConstructorDeclarationParameterComma = false;
var result = GetResult (policy, @"class Test {
public Test (int a,int b,int c) {}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"(int a ,int b ,int c)", result.GetText (i1, i2 - i1));
policy.SpaceBeforeConstructorDeclarationParameterComma = false;
result = GetResult (policy, result.Text);
i1 = result.Text.LastIndexOf ("(");
i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"(int a,int b,int c)", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestAfterConstructorDeclarationParameterComma ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeConstructorDeclarationParameterComma = false;
policy.SpaceAfterConstructorDeclarationParameterComma = true;
var result = GetResult (policy, @"class Test {
public Test (int a,int b,int c) {}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"(int a, int b, int c)", result.GetText (i1, i2 - i1));
policy.SpaceAfterConstructorDeclarationParameterComma = false;
result = GetResult (policy, result.Text);
i1 = result.Text.LastIndexOf ("(");
i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"(int a,int b,int c)", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinConstructorDeclarationParentheses ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceWithinConstructorDeclarationParentheses = true;
var result = GetResult (policy, @"class Test {
Test (int a)
{
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( int a )", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestBetweenEmptyConstructorDeclarationParentheses ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBetweenEmptyConstructorDeclarationParentheses = true;
var result = GetResult (policy, @"class Test {
Test ()
{
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( )", result.GetText (i1, i2 - i1));
}
#endregion
#region Delegates
[Test()]
public void TestBeforeDelegateDeclarationParentheses ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeDelegateDeclarationParentheses = true;
var result = GetResult (policy, @"delegate void Test();");
Assert.AreEqual (@"delegate void Test ();", result.Text);
}
[Test()]
public void TestBeforeDelegateDeclarationParenthesesComplex ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeDelegateDeclarationParentheses = true;
var result = GetResult (policy, "delegate void TestDelegate\t\t\t();");
Assert.AreEqual (@"delegate void TestDelegate ();", result.Text);
}
[Test()]
public void TestBeforeDelegateDeclarationParameterComma ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeDelegateDeclarationParameterComma = true;
policy.SpaceAfterDelegateDeclarationParameterComma = false;
var result = GetResult (policy, @"delegate void Test (int a,int b,int c);");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"(int a ,int b ,int c)", result.GetText (i1, i2 - i1));
policy.SpaceBeforeDelegateDeclarationParameterComma = false;
result = GetResult (policy, result.Text);
i1 = result.Text.LastIndexOf ("(");
i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"(int a,int b,int c)", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestAfterDelegateDeclarationParameterComma ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeDelegateDeclarationParameterComma = false;
policy.SpaceAfterDelegateDeclarationParameterComma = true;
var result = GetResult (policy, @"delegate void Test (int a,int b,int c);");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"(int a, int b, int c)", result.GetText (i1, i2 - i1));
policy.SpaceAfterDelegateDeclarationParameterComma = false;
result = GetResult (policy, result.Text);
i1 = result.Text.LastIndexOf ("(");
i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"(int a,int b,int c)", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinDelegateDeclarationParentheses ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceWithinDelegateDeclarationParentheses = true;
var result = GetResult (policy, @"delegate void Test (int a);");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( int a )", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestBetweenEmptyDelegateDeclarationParentheses ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBetweenEmptyDelegateDeclarationParentheses = true;
var result = GetResult (policy, @"delegate void Test();");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( )", result.GetText (i1, i2 - i1));
}
#endregion
#region Method invocations
[Test()]
public void TestBeforeMethodCallParentheses ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeMethodCallParentheses = true;
var result = GetResult (policy, @"class FooBar
{
public void Foo ()
{
Test();
}
}");
Assert.AreEqual (NormalizeNewlines(@"class FooBar
{
public void Foo ()
{
Test ();
}
}"), result.Text);
}
[Test()]
public void TestBeforeMethodCallParameterComma ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeMethodCallParameterComma = true;
policy.SpaceAfterMethodCallParameterComma = false;
var result = GetResult (policy, @"class FooBar
{
public void Foo ()
{
Test(a,b,c);
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"(a ,b ,c)", result.GetText (i1, i2 - i1));
policy.SpaceBeforeMethodCallParameterComma = false;
result = GetResult (policy, result.Text);
i1 = result.Text.LastIndexOf ("(");
i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"(a,b,c)", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestAfterMethodCallParameterComma ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeMethodCallParameterComma = false;
policy.SpaceAfterMethodCallParameterComma = true;
var result = GetResult (policy, @"class FooBar
{
public void Foo ()
{
Test(a,b,c);
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"(a, b, c)", result.GetText (i1, i2 - i1));
policy.SpaceAfterMethodCallParameterComma = false;
result = GetResult (policy, result.Text);
i1 = result.Text.LastIndexOf ("(");
i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"(a,b,c)", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinMethodCallParentheses ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceWithinMethodCallParentheses = true;
var result = GetResult (policy, @"class FooBar
{
public void Foo ()
{
Test(a);
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( a )", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestBetweenEmptyMethodCallParentheses ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBetweenEmptyMethodCallParentheses = true;
var result = GetResult (policy, @"class FooBar
{
public void Foo ()
{
Test();
}
}");
int i1 = result.Text.LastIndexOf ("(");
int i2 = result.Text.LastIndexOf (")") + ")".Length;
Assert.AreEqual (@"( )", result.GetText (i1, i2 - i1));
}
#endregion
#region Indexer declarations
[Test()]
public void TestBeforeIndexerDeclarationBracket ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeIndexerDeclarationBracket = true;
var result = GetResult (policy, @"class FooBar
{
public int this[int a, int b] {
get {
return a + b;
}
}
}");
Assert.AreEqual (NormalizeNewlines(@"class FooBar
{
public int this [int a, int b] {
get {
return a + b;
}
}
}"), result.Text);
}
[Test()]
public void TestBeforeIndexerDeclarationParameterComma ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeIndexerDeclarationParameterComma = true;
policy.SpaceAfterIndexerDeclarationParameterComma = false;
var result = GetResult (policy, @"class FooBar
{
public int this[int a,int b] {
get {
return a + b;
}
}
}");
int i1 = result.Text.LastIndexOf ("[");
int i2 = result.Text.LastIndexOf ("]") + "]".Length;
Assert.AreEqual (@"[int a ,int b]", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestAfterIndexerDeclarationParameterComma ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceAfterIndexerDeclarationParameterComma = true;
var result = GetResult (policy, @"class FooBar
{
public int this[int a,int b] {
get {
return a + b;
}
}
}");
int i1 = result.Text.LastIndexOf ("[");
int i2 = result.Text.LastIndexOf ("]") + "]".Length;
Assert.AreEqual (@"[int a, int b]", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestWithinIndexerDeclarationBracket ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceWithinIndexerDeclarationBracket = true;
var result = GetResult (policy, @"class FooBar
{
public int this[int a, int b] {
get {
return a + b;
}
}
}");
int i1 = result.Text.LastIndexOf ("[");
int i2 = result.Text.LastIndexOf ("]") + "]".Length;
Assert.AreEqual (@"[ int a, int b ]", result.GetText (i1, i2 - i1));
}
#endregion
#region Brackets
[Test()]
public void TestSpacesWithinBrackets ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpacesWithinBrackets = true;
policy.SpacesBeforeBrackets = false;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
this[0] = 5;
}
}");
Assert.AreEqual (NormalizeNewlines(@"class Test
{
void TestMe ()
{
this[ 0 ] = 5;
}
}"), result.Text);
}
[Test()]
public void TestSpacesBeforeBrackets ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpacesBeforeBrackets = true;
var result = GetResult (policy, @"class Test
{
void TestMe ()
{
this[0] = 5;
}
}");
Assert.AreEqual (NormalizeNewlines(@"class Test
{
void TestMe ()
{
this [0] = 5;
}
}"), result.Text);
}
[Test()]
public void TestBeforeBracketComma ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeBracketComma = true;
policy.SpaceAfterBracketComma = false;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
this[1,2,3] = 5;
}
}");
int i1 = result.Text.LastIndexOf ("[");
int i2 = result.Text.LastIndexOf ("]") + "]".Length;
Assert.AreEqual (@"[1 ,2 ,3]", result.GetText (i1, i2 - i1));
}
[Test()]
public void TestAfterBracketComma ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceAfterBracketComma = true;
var result = GetResult (policy, @"class Test {
void TestMe ()
{
this[1,2,3] = 5;
}
}");
int i1 = result.Text.LastIndexOf ("[");
int i2 = result.Text.LastIndexOf ("]") + "]".Length;
Assert.AreEqual (@"[1, 2, 3]", result.GetText (i1, i2 - i1));
}
#endregion
[Test()]
public void TestSpacesBeforeArrayDeclarationBrackets ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceBeforeArrayDeclarationBrackets = true;
var result = GetResult (policy, @"class Test {
int[] a;
int[][] b;
}");
Assert.AreEqual (NormalizeNewlines(@"class Test
{
int [] a;
int [][] b;
}"), result.Text);
}
[Test()]
public void TestRemoveWhitespacesBeforeSemicolon()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
var result = GetResult(policy, @"class Test {
void TestMe ()
{
Foo () ;
}
}");
int i1 = result.Text.IndexOf("Foo");
int i2 = result.Text.LastIndexOf(";") + ";".Length;
Assert.AreEqual(@"Foo ();", result.GetText(i1, i2 - i1));
}
[Test()]
public void TestSpaceInNamedArgumentAfterDoubleColon()
{
var policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceInNamedArgumentAfterDoubleColon = true;
var result = GetResult(policy, @"class Test {
void TestMe ()
{
Foo (bar:expr);
}
}");
int i1 = result.Text.IndexOf("Foo");
int i2 = result.Text.LastIndexOf(";") + ";".Length;
Assert.AreEqual(@"Foo (bar: expr);", result.GetText(i1, i2 - i1));
}
[Test()]
public void TestSpaceInNamedArgumentAfterDoubleColon2()
{
var policy = FormattingOptionsFactory.CreateMono ();
policy.SpaceInNamedArgumentAfterDoubleColon = false;
var result = GetResult(policy, @"class Test {
void TestMe ()
{
Foo (bar: expr);
}
}");
int i1 = result.Text.IndexOf("Foo");
int i2 = result.Text.LastIndexOf(";") + ";".Length;
Assert.AreEqual(@"Foo (bar:expr);", result.GetText(i1, i2 - i1));
}
}
}