Describe the bug
If you want to test if a file handle is released correctly after calling IFileInfo.OpenRead() the test does not fail when using MockFileSystem.
To Reproduce
Steps to reproduce the behavior:
- Run the following Test and see that it should fail but greens
using System.IO.Abstractions;
using System.IO.Abstractions.TestingHelpers;
using FluentAssertions;
using NUnit.Framework;
namespace InstallerServiceTests.Package;
public class TestClass
{
[Test]
public void TestThatStreamIsDisposedAfterOpenRead()
{
// Given
var mockFileSystem = new MockFileSystem();
var fileInfo = mockFileSystem.FileInfo.FromFileName("aPath.txt");
mockFileSystem.AddFile(fileInfo.FullName,
"");
ClassUnderTest.MethodUnderTest(fileInfo);
// When
var action = () => fileInfo.Delete(); // write access on the still opened file
// Then
action.Should()
.NotThrow();
}
}
public static class ClassUnderTest
{
public static void MethodUnderTest(IFileInfo fileInfo)
{
var stream = fileInfo.OpenRead();
// stream is not disposed as it should be correctly
}
}
- Change the MockFileSystem to the real FileSystem and you will see that the test fails correctly
Expected behavior
MockFileSystem should behave like the real FileSystem so that the test fails
Additional context
I am working on Windows 10
Versions:
System.IO.Abstractions = 17.2.3
Describe the bug
If you want to test if a file handle is released correctly after calling IFileInfo.OpenRead() the test does not fail when using MockFileSystem.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
MockFileSystem should behave like the real FileSystem so that the test fails
Additional context
I am working on Windows 10
Versions:
System.IO.Abstractions = 17.2.3