public async Task WriteStreamedMessageAsync_MultipleMessagesWithFlush_WriteMessagesAsSegments() { // Arrange var ms = new MemoryStream(); var pipeWriter = new Base64PipeWriter(PipeWriter.Create(ms)); // Act await pipeWriter.WriteStreamedMessageAsync(new EchoRequest { Message = "test" }, HttpContextServerCallContextHelper.CreateServerCallContext(), MarshallerEchoRequest.ContextualSerializer); await pipeWriter.WriteStreamedMessageAsync(new EchoRequest { Message = "test" }, HttpContextServerCallContextHelper.CreateServerCallContext(), MarshallerEchoRequest.ContextualSerializer); await pipeWriter.WriteStreamedMessageAsync(new EchoRequest { Message = "test" }, HttpContextServerCallContextHelper.CreateServerCallContext(), MarshallerEchoRequest.ContextualSerializer); // Assert var base64 = Encoding.UTF8.GetString(ms.ToArray()); Assert.AreEqual("AAAAAAYKBHRlc3Q=AAAAAAYKBHRlc3Q=AAAAAAYKBHRlc3Q=", base64); }
public async Task WriteStreamedMessageAsync_MultipleMessagesNoFlush_WriteMessages() { // Arrange var ms = new MemoryStream(); var pipeWriter = new Base64PipeWriter(PipeWriter.Create(ms)); var writeOptions = new WriteOptions(WriteFlags.BufferHint); // Act await pipeWriter.WriteStreamedMessageAsync(new EchoRequest { Message = "test" }, HttpContextServerCallContextHelper.CreateServerCallContext(writeOptions: writeOptions), MarshallerEchoRequest.ContextualSerializer); await pipeWriter.WriteStreamedMessageAsync(new EchoRequest { Message = "test" }, HttpContextServerCallContextHelper.CreateServerCallContext(writeOptions: writeOptions), MarshallerEchoRequest.ContextualSerializer); await pipeWriter.WriteStreamedMessageAsync(new EchoRequest { Message = "test" }, HttpContextServerCallContextHelper.CreateServerCallContext(writeOptions: writeOptions), MarshallerEchoRequest.ContextualSerializer); pipeWriter.Complete(); // Assert var base64 = Encoding.UTF8.GetString(ms.ToArray()); Assert.AreEqual("AAAAAAYKBHRlc3QAAAAABgoEdGVzdAAAAAAGCgR0ZXN0", base64); }
public async Task WriteStreamedMessageAsync_EmptyMessage_WriteMessageWithNoData() { // Arrange var ms = new MemoryStream(); var pipeWriter = new Base64PipeWriter(PipeWriter.Create(ms)); // Act await pipeWriter.WriteStreamedMessageAsync(new EchoRequest(), HttpContextServerCallContextHelper.CreateServerCallContext(), MarshallerEchoRequest.ContextualSerializer); // Assert var base64 = Encoding.UTF8.GetString(ms.ToArray()); var messageData = Convert.FromBase64String(base64); CollectionAssert.AreEqual( new byte[] { 0x00, // compression = 0 0x00, 0x00, 0x00, 0x00, // length = 0 }, messageData); }