public async Task Flush_FlushesUnderlyingStream(bool async) { var monitoredStream = new InstrumentedStream(this.underlyingStream); int flushed = 0; monitoredStream.DidFlush += (s, e) => flushed++; const int bufferSize = 4; var substreamBuffer = this.GetRandomBuffer(bufferSize); var substream = monitoredStream.WriteSubstream(64); await this.WriteSyncOrAsync(substream, async, substreamBuffer, 0, substreamBuffer.Length, this.TimeoutToken); Assert.Equal(0, flushed); await this.FlushSyncOrAsync(substream, async); Assert.Equal(1, flushed); }
public async Task Dispose_FlushesFinalBytes(bool async) { var monitoredStream = new InstrumentedStream(this.underlyingStream); int lastOperation = 0; monitoredStream.DidWrite += (s, e) => lastOperation = 1; monitoredStream.DidWriteMemory += (s, e) => lastOperation = 1; monitoredStream.DidWriteSpan += (s, e) => lastOperation = 1; monitoredStream.DidWriteByte += (s, e) => lastOperation = 1; monitoredStream.DidFlush += (s, e) => lastOperation = 2; const int bufferSize = 64; var substream = monitoredStream.WriteSubstream(bufferSize); var substreamBuffer = this.GetRandomBuffer(256); await this.DisposeSyncOrAsync(substream, async); Assert.Equal(2, lastOperation); }