Skip to content

Commit 9952eab

Browse files
test: added exclusive mock file stream handling unit tests
1 parent d648b5e commit 9952eab

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests/MockFileStreamTests.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -390,4 +390,26 @@ async Task Act() =>
390390
await source.CopyToAsync(destination);
391391
await That(Act).Throws<NotSupportedException>();
392392
}
393+
394+
[Test]
395+
public async Task MockFileStream_WhenExclusiveStreamOpen_ShouldThrowIOException()
396+
{
397+
var fileSystem = new MockFileSystem();
398+
fileSystem.File.WriteAllText("foo.txt", "");
399+
using (new MockFileStream(fileSystem, "foo.txt", FileMode.Open, FileAccess.Read, FileShare.None))
400+
{
401+
await That(() => new MockFileStream(fileSystem, "foo.txt", FileMode.Open, FileAccess.Read)).Throws<IOException>();
402+
}
403+
}
404+
405+
[Test]
406+
public async Task MockFileStream_WhenExclusiveStreamClosed_ShouldNotThrow()
407+
{
408+
var fileSystem = new MockFileSystem();
409+
fileSystem.File.WriteAllText("foo.txt", "");
410+
var stream = new MockFileStream(fileSystem, "foo.txt", FileMode.Open, FileAccess.Read, FileShare.None);
411+
stream.Dispose();
412+
413+
await That(() => new MockFileStream(fileSystem, "foo.txt", FileMode.Open, FileAccess.Read)).DoesNotThrow();
414+
}
393415
}

0 commit comments

Comments
 (0)