public async Task WriteAsync_VeryLargeData_Written() { // Arrange var ms = new MemoryStream(); var gprcWebStream = new Base64RequestStream(ms); var s = string.Create <object>(16384, null !, (s, o) => { for (var i = 0; i < s.Length; i++) { s[i] = Convert.ToChar(i % 10); } }); var data = Encoding.UTF8.GetBytes(s); // Act await gprcWebStream.WriteAsync(data); await gprcWebStream.FlushAsync(); // Assert var base64 = Encoding.UTF8.GetString(ms.ToArray()); var result = Convert.FromBase64String(base64); CollectionAssert.AreEqual(data, result); }
public async Task WriteAsync_SmallData_Written() { // Arrange var ms = new MemoryStream(); var gprcWebStream = new Base64RequestStream(ms); var data = Encoding.UTF8.GetBytes("123"); // Act await gprcWebStream.WriteAsync(data); // Assert var base64 = Encoding.UTF8.GetString(ms.ToArray()); CollectionAssert.AreEqual(data, Convert.FromBase64String(base64)); }
public async Task WriteAsync_SmallDataWithRemainder_WrittenWithoutRemainder() { // Arrange var ms = new MemoryStream(); var gprcWebStream = new Base64RequestStream(ms); var data = Encoding.UTF8.GetBytes("Hello world"); // Act await gprcWebStream.WriteAsync(data); // Assert var base64 = Encoding.UTF8.GetString(ms.ToArray()); var newData = Convert.FromBase64String(base64); CollectionAssert.AreEqual(data.AsSpan(0, newData.Length).ToArray(), newData); }
public async Task FlushAsync_HasRemainder_WriteRemainder() { // Arrange var ms = new MemoryStream(); var gprcWebStream = new Base64RequestStream(ms); var data = Encoding.UTF8.GetBytes("Hello world"); // Act await gprcWebStream.WriteAsync(data); await gprcWebStream.FlushAsync(); // Assert var base64 = Encoding.UTF8.GetString(ms.ToArray()); CollectionAssert.AreEqual(data, Convert.FromBase64String(base64)); }
public async Task WriteAsync_MultipleSingleBytes_Written() { // Arrange var ms = new MemoryStream(); var gprcWebStream = new Base64RequestStream(ms); var data = Encoding.UTF8.GetBytes("123"); // Act foreach (var b in data) { await gprcWebStream.WriteAsync(new[] { b }); } // Assert var base64 = Encoding.UTF8.GetString(ms.ToArray()); CollectionAssert.AreEqual(data, Convert.FromBase64String(base64)); HttpRequestMessage m = new HttpRequestMessage(); HttpResponseMessage mm = new HttpResponseMessage(); mm.TrailingHeaders.Add("test", "value"); }