You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
MockDirectory.Delete recursive does not consider nested files MockFileData.AllowedFileShare property #747
Describe the bug
MockDirectory.Delete recursive does not consider nested files which MockFileData.AllowedFileShare property does not allow delete operation.
To Reproduce
The following test reproduces the error:
[Test]
public void MockDirectory_Delete_ShouldThrowIfFileAccessShareHasNoWriteOrDeleteAccess()
{
// Arrange
var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData>
{
{ @"c:\bar\foo.txt", new MockFileData("some demo content") },
{ @"c:\bar\baz.txt", new MockFileData("some demo content"){ AllowedFileShare = FileShare.None } }
});
// Throws exception
Assert.Throws(typeof(IOException), () => fileSystem.File.Delete(@"c:\bar\baz.txt"));
// Does not throw exception
Assert.Throws(typeof(IOException), () => fileSystem.Directory.Delete(@"c:\bar", true));
}
Expected behavior
I'm not sure if this is indeed a bug or I didn't understand the semantics of the AllowedFileShare property, but the behaviour seems inconsistent. In case it's a bug, I'd be happy to open a PR for it.
Activity
fgreinacher commentedon Aug 9, 2021
Thanks for reporting. You got the idea totally right and I agree it's a gap in our implementation.