diff --git a/src/InterpolationCodeWriter/SourceTextWriter.WriteLine.cs b/src/InterpolationCodeWriter/SourceTextWriter.WriteLine.cs index a494bc4..aef8682 100644 --- a/src/InterpolationCodeWriter/SourceTextWriter.WriteLine.cs +++ b/src/InterpolationCodeWriter/SourceTextWriter.WriteLine.cs @@ -23,6 +23,110 @@ public void WriteLine() _builder.Append(_newLine); } + /// Write boolean directly into the generated output and appends a new line. + /// The boolean to be written. + public void WriteLine(bool value) + { + Write(value); + _builder.Append(_newLine); + } + + /// Write character directly into the generated output and appends a new line. + /// The character to be written. + public void WriteLine(char value) + { + Write(value); + _builder.Append(_newLine); + } + + /// Write number directly into the generated output and appends a new line. + /// The number to be written. + public void WriteLine(byte number) + { + Write(number); + _builder.Append(_newLine); + } + + /// Write number directly into the generated output and appends a new line. + /// The number to be written. + public void WriteLine(sbyte number) + { + Write(number); + _builder.Append(_newLine); + } + + /// Write number directly into the generated output and appends a new line. + /// The number to be written. + public void WriteLine(short number) + { + Write(number); + _builder.Append(_newLine); + } + + /// Write number directly into the generated output and appends a new line. + /// The number to be written. + public void WriteLine(ushort number) + { + Write(number); + _builder.Append(_newLine); + } + + /// Write number directly into the generated output and appends a new line. + /// The number to be written. + public void WriteLine(int number) + { + Write(number); + _builder.Append(_newLine); + } + + /// Write number directly into the generated output and appends a new line. + /// The number to be written. + public void WriteLine(uint number) + { + Write(number); + _builder.Append(_newLine); + } + + /// Write number directly into the generated output and appends a new line. + /// The number to be written. + public void WriteLine(long number) + { + Write(number); + _builder.Append(_newLine); + } + + /// Write number directly into the generated output and appends a new line. + /// The number to be written. + public void WriteLine(ulong number) + { + Write(number); + _builder.Append(_newLine); + } + + /// Write number directly into the generated output and appends a new line. + /// The number to be written. + public void WriteLine(float number) + { + Write(number); + _builder.Append(_newLine); + } + + /// Write number directly into the generated output and appends a new line. + /// The number to be written. + public void WriteLine(double number) + { + Write(number); + _builder.Append(_newLine); + } + + /// Write number directly into the generated output and appends a new line. + /// The number to be written. + public void WriteLine(decimal number) + { + Write(number); + _builder.Append(_newLine); + } + /// Write boolean directly into the generated output and appends a new line. /// The boolean to be written. public void WriteLine(bool? value) diff --git a/tests/InterpolationCodeWriter.Tests/SourceTextWriterTest.WriteLine.cs b/tests/InterpolationCodeWriter.Tests/SourceTextWriterTest.WriteLine.cs index 7803553..811c506 100644 --- a/tests/InterpolationCodeWriter.Tests/SourceTextWriterTest.WriteLine.cs +++ b/tests/InterpolationCodeWriter.Tests/SourceTextWriterTest.WriteLine.cs @@ -131,4 +131,340 @@ public void MultipleWriteLineThenWriteVerifiesIndentation() Assert.Equal("line1\n line2\n line3", writer.ToStringAndReset()); } + + [Fact] + public void WriteLineBoolNonNullableAppendsValueAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine(true); + + Assert.Equal("True\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineCharNonNullableAppendsCharacterAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine('X'); + + Assert.Equal("X\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineByteAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine((byte)255); + + Assert.Equal("255\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineSByteAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine((sbyte)-1); + + Assert.Equal("-1\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineShortAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine((short)1000); + + Assert.Equal("1000\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineUShortAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine((ushort)2000); + + Assert.Equal("2000\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineIntNonNullableAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine(42); + + Assert.Equal("42\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineUIntAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine((uint)100); + + Assert.Equal("100\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineLongAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine(123L); + + Assert.Equal("123\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineULongAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine((ulong)456); + + Assert.Equal("456\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineFloatAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine(1.5f); + + Assert.Equal("1.5\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineDoubleAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine(3.14); + + Assert.Equal("3.14\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineDecimalAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine(9.99m); + + Assert.Equal("9.99\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineNullBoolAppendsOnlyNewLine() + { + var writer = new SourceTextWriter(); + writer.Write("start"); + writer.WriteLine((bool?)null); + + Assert.Equal("start\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineCharNullableAppendsCharacterAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine((char?)'X'); + + Assert.Equal("X\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineNullCharAppendsOnlyNewLine() + { + var writer = new SourceTextWriter(); + writer.Write("start"); + writer.WriteLine((char?)null); + + Assert.Equal("start\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineByteNullableAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine((byte?)255); + + Assert.Equal("255\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineNullByteAppendsOnlyNewLine() + { + var writer = new SourceTextWriter(); + writer.Write("start"); + writer.WriteLine((byte?)null); + + Assert.Equal("start\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineSByteNullableAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine((sbyte?)-1); + + Assert.Equal("-1\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineNullSByteAppendsOnlyNewLine() + { + var writer = new SourceTextWriter(); + writer.Write("start"); + writer.WriteLine((sbyte?)null); + + Assert.Equal("start\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineShortNullableAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine((short?)1000); + + Assert.Equal("1000\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineNullShortAppendsOnlyNewLine() + { + var writer = new SourceTextWriter(); + writer.Write("start"); + writer.WriteLine((short?)null); + + Assert.Equal("start\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineUShortNullableAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine((ushort?)2000); + + Assert.Equal("2000\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineNullUShortAppendsOnlyNewLine() + { + var writer = new SourceTextWriter(); + writer.Write("start"); + writer.WriteLine((ushort?)null); + + Assert.Equal("start\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineUIntNullableAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine((uint?)100); + + Assert.Equal("100\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineNullUIntAppendsOnlyNewLine() + { + var writer = new SourceTextWriter(); + writer.Write("start"); + writer.WriteLine((uint?)null); + + Assert.Equal("start\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineLongNullableAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine((long?)123); + + Assert.Equal("123\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineNullLongAppendsOnlyNewLine() + { + var writer = new SourceTextWriter(); + writer.Write("start"); + writer.WriteLine((long?)null); + + Assert.Equal("start\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineULongNullableAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine((ulong?)456); + + Assert.Equal("456\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineNullULongAppendsOnlyNewLine() + { + var writer = new SourceTextWriter(); + writer.Write("start"); + writer.WriteLine((ulong?)null); + + Assert.Equal("start\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineFloatNullableAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine((float?)1.5f); + + Assert.Equal("1.5\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineNullFloatAppendsOnlyNewLine() + { + var writer = new SourceTextWriter(); + writer.Write("start"); + writer.WriteLine((float?)null); + + Assert.Equal("start\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineDoubleNullableAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine((double?)3.14); + + Assert.Equal("3.14\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineNullDoubleAppendsOnlyNewLine() + { + var writer = new SourceTextWriter(); + writer.Write("start"); + writer.WriteLine((double?)null); + + Assert.Equal("start\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineDecimalNullableAppendsNumberAndNewLine() + { + var writer = new SourceTextWriter(); + writer.WriteLine((decimal?)9.99m); + + Assert.Equal("9.99\n", writer.ToStringAndReset()); + } + + [Fact] + public void WriteLineNullDecimalAppendsOnlyNewLine() + { + var writer = new SourceTextWriter(); + writer.Write("start"); + writer.WriteLine((decimal?)null); + + Assert.Equal("start\n", writer.ToStringAndReset()); + } } diff --git a/version.json b/version.json index 6825ef1..4768dfd 100644 --- a/version.json +++ b/version.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/main/src/NerdBank.GitVersioning/version.schema.json", - "version": "2.0", + "version": "2.1", "pathFilters": ["src"], "publicReleaseRefSpec": [ "^refs/tags/v\\d+\\.\\d+"