public void WriteCharArrayTest() { TextWriter baseWriter = new StringWriter(); int maximumLineLength = 80; bool disposeBaseWriter = true; LineWrappingTextWriter target = new LineWrappingTextWriter(baseWriter, maximumLineLength, disposeBaseWriter); char[] buffer = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dolor est, porttitor eget posuere in, hendrerit in tortor. Nulla adipiscing turpis id nibh egestas eu facilisis lorem condimentum volutpat.".ToCharArray(); int index = 0; int count = buffer.Length; target.Write(buffer, index, count); target.Flush(); // write it again, in pieces exactly as long as the max line length for (int x = 0; x < buffer.Length; x += maximumLineLength) { target.Write(buffer, x, Math.Min(buffer.Length - x, maximumLineLength)); } target.Flush(); // And again, in pieces less than the max line length for (int x = 0; x < buffer.Length; x += 50) { target.Write(buffer, x, Math.Min(buffer.Length - x, 50)); } target.Flush(); string result = baseWriter.ToString(); Assert.AreEqual("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dolor est,\r\nporttitor eget posuere in, hendrerit in tortor. Nulla adipiscing turpis id nibh\r\negestas eu facilisis lorem condimentum volutpat.\r\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dolor est,\r\nporttitor eget posuere in, hendrerit in tortor. Nulla adipiscing turpis id nibh\r\negestas eu facilisis lorem condimentum volutpat.\r\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dolor est,\r\nporttitor eget posuere in, hendrerit in tortor. Nulla adipiscing turpis id nibh\r\negestas eu facilisis lorem condimentum volutpat.\r\n", result); baseWriter = new StringWriter(); target = new LineWrappingTextWriter(baseWriter, maximumLineLength, disposeBaseWriter); // With line endings embedded. buffer = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dolor est, porttitor eget posuere in,\r\n hendrerit in tortor.\r\nNulla adipiscing turpis id nibh\r\negestas eu facilisis lorem condimentum volutpat.\r\n".ToCharArray(); count = buffer.Length; target.Write(buffer, 0, count); target.Flush(); result = baseWriter.ToString(); Assert.AreEqual("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dolor est,\r\nporttitor eget posuere in,\r\n hendrerit in tortor.\r\nNulla adipiscing turpis id nibh\r\negestas eu facilisis lorem condimentum volutpat.\r\n", result); baseWriter = new StringWriter(); target = new LineWrappingTextWriter(baseWriter, maximumLineLength, disposeBaseWriter); // With no place to wrap. buffer = "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789".ToCharArray(); count = buffer.Length; target.Write(buffer, 0, count); target.Flush(); result = baseWriter.ToString(); Assert.AreEqual("01234567890123456789012345678901234567890123456789012345678901234567890123456789\r\n01234567890123456789\r\n", result); }
public void WriteStringTest() { int maximumLineLength = 80; bool disposeBaseWriter = true; string value; using (TextWriter baseWriter = new StringWriter()) using (LineWrappingTextWriter target = new LineWrappingTextWriter(baseWriter, maximumLineLength, disposeBaseWriter)) { value = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dolor est, porttitor eget posuere in, hendrerit in tortor. Nulla adipiscing turpis id nibh egestas eu facilisis lorem condimentum volutpat."; target.Write(value); target.Flush(); // write it again, in pieces exactly as long as the max line length for (int x = 0; x < value.Length; x += maximumLineLength) { target.Write(value.Substring(x, Math.Min(value.Length - x, maximumLineLength))); } target.Flush(); // And again, in pieces less than the max line length for (int x = 0; x < value.Length; x += 50) { target.Write(value.Substring(x, Math.Min(value.Length - x, 50))); } target.Flush(); string result = baseWriter.ToString(); Assert.AreEqual("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dolor est,\r\nporttitor eget posuere in, hendrerit in tortor. Nulla adipiscing turpis id nibh\r\negestas eu facilisis lorem condimentum volutpat.\r\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dolor est,\r\nporttitor eget posuere in, hendrerit in tortor. Nulla adipiscing turpis id nibh\r\negestas eu facilisis lorem condimentum volutpat.\r\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dolor est,\r\nporttitor eget posuere in, hendrerit in tortor. Nulla adipiscing turpis id nibh\r\negestas eu facilisis lorem condimentum volutpat.\r\n", result); } using (var baseWriter = new StringWriter()) using (var target = new LineWrappingTextWriter(baseWriter, maximumLineLength, disposeBaseWriter)) { // With line endings embedded. value = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dolor est, porttitor eget posuere in,\r\n hendrerit in tortor.\r\nNulla adipiscing turpis id nibh\r\negestas eu facilisis lorem condimentum volutpat.\r\n"; target.Write(value); target.Flush(); string result = baseWriter.ToString(); Assert.AreEqual("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dolor est,\r\nporttitor eget posuere in,\r\n hendrerit in tortor.\r\nNulla adipiscing turpis id nibh\r\negestas eu facilisis lorem condimentum volutpat.\r\n", result); } using (var baseWriter = new StringWriter()) using (var target = new LineWrappingTextWriter(baseWriter, maximumLineLength, disposeBaseWriter)) { // With no place to wrap. value = "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"; target.Write(value); target.Flush(); string result = baseWriter.ToString(); Assert.AreEqual("01234567890123456789012345678901234567890123456789012345678901234567890123456789\r\n01234567890123456789\r\n", result); } }
public void WriteStringUnixLineEndingTest() { using (LineWrappingTextWriter target = LineWrappingTextWriter.ForStringWriter(80)) { target.NewLine = "\n"; target.BaseWriter.NewLine = "\n"; string value = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dolor est, porttitor eget posuere in,\n hendrerit in tortor.\nNulla adipiscing turpis id nibh\negestas eu facilisis lorem condimentum volutpat.\n"; target.Write(value); target.Flush(); string result = target.BaseWriter.ToString(); Assert.AreEqual("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dolor est,\nporttitor eget posuere in,\n hendrerit in tortor.\nNulla adipiscing turpis id nibh\negestas eu facilisis lorem condimentum volutpat.\n", result); } }
public void DisposeBaseWriterFalseTest() { using (TextWriter baseWriter = new StringWriter()) { using (LineWrappingTextWriter target = new LineWrappingTextWriter(baseWriter, 80, false)) { target.Write("test"); } // This will throw if the base writer was disposed. baseWriter.Write("foo"); Assert.AreEqual("test\r\nfoo", baseWriter.ToString()); } }
public void IndentStringTest() { TextWriter baseWriter = new StringWriter(); int maximumLineLength = 80; bool disposeBaseWriter = true; LineWrappingTextWriter target = new LineWrappingTextWriter(baseWriter, maximumLineLength, disposeBaseWriter) { Indent = 10 }; target.WriteLine(); // Writing an empty line should not cause the second line to be indented string value = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dolor est, porttitor eget posuere in, hendrerit in tortor. Nulla adipiscing turpis id nibh egestas eu facilisis lorem condimentum volutpat."; target.Write(value); target.ResetIndent(); // Should add a new line // write it again, in pieces exactly as long as the max line length for (int x = 0; x < value.Length; x += maximumLineLength) { target.Write(value.Substring(x, Math.Min(value.Length - x, maximumLineLength))); } target.WriteLine(); target.ResetIndent(); // Should not add an additional new line // And again, in pieces less than the max line length for (int x = 0; x < value.Length; x += 50) { target.Write(value.Substring(x, Math.Min(value.Length - x, 50))); } target.Flush(); string result = baseWriter.ToString(); Assert.AreEqual("\r\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dolor est,\r\n porttitor eget posuere in, hendrerit in tortor. Nulla adipiscing\r\n turpis id nibh egestas eu facilisis lorem condimentum volutpat.\r\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dolor est,\r\n porttitor eget posuere in, hendrerit in tortor. Nulla adipiscing\r\n turpis id nibh egestas eu facilisis lorem condimentum volutpat.\r\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dolor est,\r\n porttitor eget posuere in, hendrerit in tortor. Nulla adipiscing\r\n turpis id nibh egestas eu facilisis lorem condimentum volutpat.\r\n", result); }
public void DisposeBaseWriterTrueTest() { using (TextWriter baseWriter = new StringWriter()) { using (LineWrappingTextWriter target = new LineWrappingTextWriter(baseWriter, 80, true)) { target.Write("test"); } try { baseWriter.Write("foo"); Assert.Fail("base writer not disposed"); } catch (ObjectDisposedException) { } Assert.AreEqual("test\r\n", baseWriter.ToString()); } }