4
using ICSharpCode.NRefactory.CSharp;
5
using ICSharpCode.NRefactory.Editor;
8
namespace ICSharpCode.NRefactory.CSharp.Indentation
11
public class IndentationTests
13
static CSharpIndentEngine CreateEngine (string text)
15
var policy = FormattingOptionsFactory.CreateMono ();
17
var sb = new StringBuilder();
19
for (int i = 0; i < text.Length; i++) {
27
var document = new ReadOnlyDocument(sb.ToString ());
29
var options = new TextEditorOptions();
31
var result = new CSharpIndentEngine(document, options, policy);
32
result.UpdateToOffset(offset);
37
public void TestNamespaceIndent ()
39
var indent = CreateEngine("namespace Foo {$");
40
Assert.AreEqual("", indent.ThisLineIndent);
41
Assert.AreEqual("\t", indent.NewLineIndent);
45
public void TestPreProcessorDirectives ()
47
var indent = CreateEngine(@"
54
Assert.AreEqual("\t\t", indent.ThisLineIndent);
55
Assert.AreEqual("\t\t", indent.NewLineIndent);
59
public void TestPreProcessorDirectives2 ()
61
var indent = CreateEngine(@"
68
Assert.AreEqual("\t\t\t", indent.ThisLineIndent);
69
Assert.AreEqual("\t\t\t", indent.NewLineIndent);
75
var indent = CreateEngine(@"
80
Assert.AreEqual("\t\t", indent.ThisLineIndent);
81
Assert.AreEqual("\t\t\t", indent.NewLineIndent);
85
public void TestFor ()
87
var indent = CreateEngine(@"
92
Assert.AreEqual("\t\t", indent.ThisLineIndent);
93
Assert.AreEqual("\t\t\t", indent.NewLineIndent);
97
public void TestForEach ()
99
var indent = CreateEngine(@"
104
Assert.AreEqual("\t\t", indent.ThisLineIndent);
105
Assert.AreEqual("\t\t\t", indent.NewLineIndent);
110
public void TestDo ()
112
var indent = CreateEngine(@"
118
Assert.AreEqual("\t\t\t", indent.ThisLineIndent);
122
public void TestNestedDo ()
124
var indent = CreateEngine(@"
130
Assert.AreEqual("\t\t\t\t", indent.ThisLineIndent);
134
public void TestNestedDoContinuationSetBack ()
136
var indent = CreateEngine(@"
142
Assert.AreEqual("\t\t\t\t\t", indent.ThisLineIndent);
143
Assert.AreEqual("\t\t\t\t", indent.NewLineIndent);
147
public void TestWhile ()
149
var indent = CreateEngine(@"
154
Assert.AreEqual("\t\t", indent.ThisLineIndent);
155
Assert.AreEqual("\t\t\t", indent.NewLineIndent);
159
public void TestParameters ()
161
var indent = CreateEngine(@"
166
Assert.AreEqual("\t\t", indent.ThisLineIndent);
167
Assert.AreEqual("\t\t ", indent.NewLineIndent);
170
public void TestThisLineIndentAfterCurlyBrace ()
172
var indent = CreateEngine(@"
177
Assert.AreEqual("\t", indent.ThisLineIndent);
178
Assert.AreEqual("\t", indent.NewLineIndent);
182
public void TestThisLineIndentAfterCurlyBraceCase2 ()
184
var indent = CreateEngine(@"
188
Assert.AreEqual("\t", indent.ThisLineIndent);
189
Assert.AreEqual("\t", indent.NewLineIndent);
193
public void TestParametersCase2 ()
195
var indent = CreateEngine(@"
200
Assert.AreEqual("\t\t", indent.ThisLineIndent);
201
Assert.AreEqual("\t\t\t", indent.NewLineIndent);