Skip to content

Commit 8f5450d

Browse files
committed
Added WriteLine ReadOnlySpan of char override to HttpResponseStreamWriter
1 parent a61a7e7 commit 8f5450d

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

src/Http/WebUtilities/src/HttpResponseStreamWriter.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,17 @@ public override void Write(string value)
176176
}
177177
}
178178

179+
public override void WriteLine(ReadOnlySpan<char> values)
180+
{
181+
if (_disposed)
182+
{
183+
throw new ObjectDisposedException(nameof(HttpResponseStreamWriter));
184+
}
185+
186+
Write(values);
187+
Write(NewLine);
188+
}
189+
179190
public override Task WriteAsync(char value)
180191
{
181192
if (_disposed)

src/Http/WebUtilities/test/HttpResponseStreamWriterTest.cs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,39 @@ public void WriteReadOnlySpanChar_WritesToStream(int byteLength)
276276
Assert.Equal(byteLength, stream.Length);
277277
}
278278

279+
[Theory]
280+
[InlineData(1022, "\n")]
281+
[InlineData(1023, "\n")]
282+
[InlineData(1024, "\n")]
283+
[InlineData(1050, "\n")]
284+
[InlineData(2047, "\n")]
285+
[InlineData(2048, "\n")]
286+
[InlineData(1021, "\r\n")]
287+
[InlineData(1022, "\r\n")]
288+
[InlineData(1023, "\r\n")]
289+
[InlineData(1024, "\r\n")]
290+
[InlineData(1050, "\r\n")]
291+
[InlineData(2046, "\r\n")]
292+
[InlineData(2048, "\r\n")]
293+
public void WriteLineReadOnlySpanChar_WritesToStream(int byteLength, string newLine)
294+
{
295+
// Arrange
296+
var stream = new TestMemoryStream();
297+
var writer = new HttpResponseStreamWriter(stream, Encoding.UTF8);
298+
299+
writer.NewLine = newLine;
300+
// Act
301+
using (writer)
302+
{
303+
var array = new string('a', byteLength).ToCharArray();
304+
var span = new ReadOnlySpan<char>(array);
305+
writer.WriteLine(span);
306+
}
307+
308+
// Assert
309+
Assert.Equal(byteLength + newLine.Length, stream.Length);
310+
}
311+
279312
[Theory]
280313
[InlineData(1023)]
281314
[InlineData(1024)]

0 commit comments

Comments
 (0)