Browse Source

Make InsertParenthesesVisitorTests independent from indentation of the output.

newNRvisualizers
Daniel Grunwald 14 years ago
parent
commit
07e2896356
  1. 26
      ICSharpCode.NRefactory.Tests/CSharp/InsertParenthesesVisitorTests.cs
  2. 5
      ICSharpCode.NRefactory/CSharp/OutputVisitor/TextWriterOutputFormatter.cs

26
ICSharpCode.NRefactory.Tests/CSharp/InsertParenthesesVisitorTests.cs

@ -23,7 +23,8 @@ namespace ICSharpCode.NRefactory.CSharp @@ -23,7 +23,8 @@ namespace ICSharpCode.NRefactory.CSharp
expr = expr.Clone();
expr.AcceptVisitor(new InsertParenthesesVisitor { InsertParenthesesForReadability = true }, null);
StringWriter w = new StringWriter();
expr.AcceptVisitor(new OutputVisitor(w, policy), null);
w.NewLine = " ";
expr.AcceptVisitor(new OutputVisitor(new TextWriterOutputFormatter(w) { IndentationString = "" }, policy), null);
return w.ToString();
}
@ -32,7 +33,8 @@ namespace ICSharpCode.NRefactory.CSharp @@ -32,7 +33,8 @@ namespace ICSharpCode.NRefactory.CSharp
expr = expr.Clone();
expr.AcceptVisitor(new InsertParenthesesVisitor { InsertParenthesesForReadability = false }, null);
StringWriter w = new StringWriter();
expr.AcceptVisitor(new OutputVisitor(w, policy), null);
w.NewLine = " ";
expr.AcceptVisitor(new OutputVisitor(new TextWriterOutputFormatter(w) { IndentationString = "" }, policy), null);
return w.ToString();
}
@ -197,8 +199,8 @@ namespace ICSharpCode.NRefactory.CSharp @@ -197,8 +199,8 @@ namespace ICSharpCode.NRefactory.CSharp
}
}.Invoke("ToArray");
Assert.AreEqual("(from a in b" + Environment.NewLine + "select a.c ()).ToArray ()", InsertRequired(expr));
Assert.AreEqual("(from a in b" + Environment.NewLine + "select a.c ()).ToArray ()", InsertReadable(expr));
Assert.AreEqual("( from a in b select a.c ()).ToArray ()", InsertRequired(expr));
Assert.AreEqual("( from a in b select a.c ()).ToArray ()", InsertReadable(expr));
}
[Test]
@ -221,12 +223,10 @@ namespace ICSharpCode.NRefactory.CSharp @@ -221,12 +223,10 @@ namespace ICSharpCode.NRefactory.CSharp
query.Clone()
);
Assert.AreEqual("(from a in b" + Environment.NewLine +
"select a) + from a in b" + Environment.NewLine +
"select a", InsertRequired(expr));
Assert.AreEqual("(from a in b" + Environment.NewLine +
"select a) + (from a in b" + Environment.NewLine +
"select a)", InsertReadable(expr));
Assert.AreEqual("( from a in b select a) + " +
" from a in b select a", InsertRequired(expr));
Assert.AreEqual("( from a in b select a) + " +
"( from a in b select a)", InsertReadable(expr));
}
[Test]
@ -244,10 +244,8 @@ namespace ICSharpCode.NRefactory.CSharp @@ -244,10 +244,8 @@ namespace ICSharpCode.NRefactory.CSharp
}
}.IsType(new PrimitiveType("int"));
Assert.AreEqual("(from a in b" + Environment.NewLine +
"select a) is int", InsertRequired(expr));
Assert.AreEqual("(from a in b" + Environment.NewLine +
"select a) is int", InsertReadable(expr));
Assert.AreEqual("( from a in b select a) is int", InsertRequired(expr));
Assert.AreEqual("( from a in b select a) is int", InsertReadable(expr));
}
[Test]

5
ICSharpCode.NRefactory/CSharp/OutputVisitor/TextWriterOutputFormatter.cs

@ -15,11 +15,14 @@ namespace ICSharpCode.NRefactory.CSharp @@ -15,11 +15,14 @@ namespace ICSharpCode.NRefactory.CSharp
int indentation;
bool needsIndent = true;
public string IndentationString { get; set; }
public TextWriterOutputFormatter(TextWriter textWriter)
{
if (textWriter == null)
throw new ArgumentNullException("textWriter");
this.textWriter = textWriter;
this.IndentationString = "\t";
}
public void WriteIdentifier(string ident)
@ -67,7 +70,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -67,7 +70,7 @@ namespace ICSharpCode.NRefactory.CSharp
if (needsIndent) {
needsIndent = false;
for (int i = 0; i < indentation; i++) {
textWriter.Write('\t');
textWriter.Write(this.IndentationString);
}
}
}

Loading…
Cancel
Save