@@ -160,6 +160,12 @@ public static void CheckProperties()
160160 Equal ( stream . CanWrite , bufferedStream . CanWrite ) ;
161161 Equal ( stream . CanSeek , bufferedStream . CanSeek ) ;
162162 Equal ( stream . CanTimeout , bufferedStream . CanTimeout ) ;
163+
164+ Throws < InvalidOperationException > ( ( ) => stream . ReadTimeout ) ;
165+ Throws < InvalidOperationException > ( ( ) => stream . ReadTimeout = 10 ) ;
166+
167+ Throws < InvalidOperationException > ( ( ) => stream . WriteTimeout ) ;
168+ Throws < InvalidOperationException > ( ( ) => stream . WriteTimeout = 10 ) ;
163169 }
164170
165171 [ Fact ]
@@ -299,4 +305,40 @@ public static async Task CopyStream2Async()
299305
300306 Equal ( expected , destination . GetBuffer ( ) ) ;
301307 }
308+
309+ [ Fact ]
310+ public static void SetLength ( )
311+ {
312+ const int bufferSize = 4096 ;
313+ using var stream = new MemoryStream ( bufferSize ) ;
314+ using var bufferedStream = new PoolingBufferedStream ( stream , leaveOpen : false )
315+ {
316+ MaxBufferSize = bufferSize ,
317+ Allocator = Memory . GetArrayAllocator < byte > ( ) ,
318+ } ;
319+
320+ var expected = RandomBytes ( bufferSize ) ;
321+ bufferedStream . Write ( expected ) ;
322+
323+ bufferedStream . SetLength ( bufferSize ) ;
324+ Equal ( expected , stream . GetBuffer ( ) ) ;
325+ }
326+
327+ [ Fact ]
328+ public static void ResetBuffer ( )
329+ {
330+ const int bufferSize = 4096 ;
331+ using var bufferedStream = new PoolingBufferedStream ( new MemoryStream ( bufferSize ) , leaveOpen : false )
332+ {
333+ MaxBufferSize = bufferSize ,
334+ Allocator = Memory . GetArrayAllocator < byte > ( ) ,
335+ } ;
336+
337+ var expected = RandomBytes ( bufferSize ) ;
338+ bufferedStream . Write ( expected ) ;
339+ True ( bufferedStream . HasBufferedDataToWrite ) ;
340+
341+ bufferedStream . Reset ( ) ;
342+ False ( bufferedStream . HasBufferedDataToWrite ) ;
343+ }
302344}
0 commit comments