@@ -160,6 +160,12 @@ public static void CheckProperties()
160
160
Equal ( stream . CanWrite , bufferedStream . CanWrite ) ;
161
161
Equal ( stream . CanSeek , bufferedStream . CanSeek ) ;
162
162
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 ) ;
163
169
}
164
170
165
171
[ Fact ]
@@ -299,4 +305,40 @@ public static async Task CopyStream2Async()
299
305
300
306
Equal ( expected , destination . GetBuffer ( ) ) ;
301
307
}
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
+ }
302
344
}
0 commit comments