Skip to content

Commit 4796eae

Browse files
committed
Improved test coverage
1 parent 57c58ae commit 4796eae

File tree

2 files changed

+46
-4
lines changed

2 files changed

+46
-4
lines changed

src/DotNext.IO/IO/PoolingBufferedStream.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,11 @@ public int MaxBufferSize
7070
/// <inheritdoc/>
7171
public override int ReadTimeout
7272
{
73-
get => stream?.ReadTimeout ?? throw new NotSupportedException();
73+
get => stream?.ReadTimeout ?? throw new InvalidOperationException();
7474
set
7575
{
7676
if (stream is null)
77-
throw new NotSupportedException();
77+
throw new InvalidOperationException();
7878

7979
stream.ReadTimeout = value;
8080
}
@@ -83,11 +83,11 @@ public override int ReadTimeout
8383
/// <inheritdoc/>
8484
public override int WriteTimeout
8585
{
86-
get => stream?.WriteTimeout ?? throw new NotSupportedException();
86+
get => stream?.WriteTimeout ?? throw new InvalidOperationException();
8787
set
8888
{
8989
if (stream is null)
90-
throw new NotSupportedException();
90+
throw new InvalidOperationException();
9191

9292
stream.WriteTimeout = value;
9393
}

src/DotNext.Tests/IO/PoolingBufferedStreamTests.cs

+42
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)