-
Notifications
You must be signed in to change notification settings - Fork 266
Open
Labels
area: testinghelpersIssues that address the testing helpersIssues that address the testing helpersstate: ready to pickIssues that are ready for being worked onIssues that are ready for being worked ontype: bugIssues that describe misbehaving functionalityIssues that describe misbehaving functionality
Description
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
Metadata
Metadata
Assignees
Labels
area: testinghelpersIssues that address the testing helpersIssues that address the testing helpersstate: ready to pickIssues that are ready for being worked onIssues that are ready for being worked ontype: bugIssues that describe misbehaving functionalityIssues that describe misbehaving functionality