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
Describe the bug
File.Move behavior is different in MockFileSystem and physical FileSystem.
To Reproduce
The test below is green with real FileSystem, but MockFileSystem throws System.UnauthorizedAccessException : Access to the path 'C:\any.txt' is denied.
[Test]
public void Move_a_readonly_file()
{
//arrange
//IFileSystem fileSystem = new FileSystem();
IFileSystem fileSystem = new MockFileSystem();
var file = "any.txt";
fileSystem.File.WriteAllText(file, "foo");
//act
fileSystem.File.SetAttributes(file, FileAttributes.ReadOnly);
fileSystem.File.Move(file, file+".moved");
//assert
Assert.That(fileSystem.File.Exists(file+".moved"));
Assert.That(fileSystem.File.Exists(file), Is.False);
}
Additional context
Tested with
Dotnet SDK: 8.0.404
Package I use:
TargetFramework: net48
Windows I use: Windows11 Ver:10.0.22631 Build 22631
Yes, you are right, this is indeed a bug!
If you want, I would be happy to accept a PR.
Alternatively you could use the alternative testing library Testably.Abstractions, which uses the same IFileSystem interface and has implemented the behaviour with moving a readonly file correctly.
Activity
vbreuss commentedon Feb 11, 2025
Yes, you are right, this is indeed a bug!
If you want, I would be happy to accept a PR.
Alternatively you could use the alternative testing library Testably.Abstractions, which uses the same
IFileSysteminterface and has implemented the behaviour with moving a readonly file correctly.fix: move a read-only file
fix: move a read-only file (#1239)
github-actions commentedon Mar 1, 2025
This is addressed in release v22.0.11.