using System.Globalization; using System.Text; using SharedTools; namespace AIStudio.Tests.Tools; /// /// Checks that AppendLineLF ends every line with LF, whatever the system. /// /// /// StringBuilder.AppendLine writes CR LF on Windows. These tests would show it there, while on macOS and Linux they /// pass with both. /// [TestFixture] public sealed class StringBuilderExtensionsTests { [Test] public void EveryKindOfLineEndsWithLf() { var number = 4711; var text = new StringBuilder() .AppendLineLF("Erste Zeile") .AppendLineLF() .AppendLineLF($"Nummer {number}") .AppendLineLF(null) .ToString(); Assert.That(text, Is.EqualTo("Erste Zeile\n\nNummer 4711\n\n")); } [Test] public void AnInterpolatedTextGoesIntoTheSameBuilderInItsPlace() { var value = 1.5; var builder = new StringBuilder("Anfang "); var returned = builder.AppendLineLF($"{value.ToString(CultureInfo.InvariantCulture)} und {"Text"}").Append("Ende"); using (Assert.EnterMultipleScope()) { Assert.That(returned, Is.SameAs(builder)); Assert.That(builder.ToString(), Is.EqualTo("Anfang 1.5 und Text\nEnde")); } } }