diff --git a/System.IO.Abstractions.TestingHelpers.Tests/MockFileMoveTests.cs b/System.IO.Abstractions.TestingHelpers.Tests/MockFileMoveTests.cs index fef5c3625..c49c5328b 100644 --- a/System.IO.Abstractions.TestingHelpers.Tests/MockFileMoveTests.cs +++ b/System.IO.Abstractions.TestingHelpers.Tests/MockFileMoveTests.cs @@ -362,5 +362,24 @@ public void MockFile_Move_ShouldThrowExceptionWhenSourceDoesNotExist_EvenWhenCop Assert.Throws(action); } + + [Test] + public void MockFile_Move_ShouldRetainMetadata() + { + string sourceFilePath = XFS.Path(@"c:\something\demo.txt"); + string sourceFileContent = "this is some content"; + DateTimeOffset creationTime = DateTimeOffset.Now; + var fileSystem = new MockFileSystem(new Dictionary + { + {sourceFilePath, new MockFileData(sourceFileContent){CreationTime = creationTime}}, + {XFS.Path(@"c:\somethingelse\dummy.txt"), new MockFileData(new byte[] {0})} + }); + + string destFilePath = XFS.Path(@"c:\somethingelse\demo1.txt"); + + fileSystem.File.Move(sourceFilePath, destFilePath); + + Assert.That(fileSystem.File.GetCreationTimeUtc(destFilePath), Is.EqualTo(creationTime.UtcDateTime)); + } } -} \ No newline at end of file +} diff --git a/System.IO.Abstractions.TestingHelpers/MockFile.cs b/System.IO.Abstractions.TestingHelpers/MockFile.cs index 9d5991d29..2950bb2ef 100644 --- a/System.IO.Abstractions.TestingHelpers/MockFile.cs +++ b/System.IO.Abstractions.TestingHelpers/MockFile.cs @@ -360,7 +360,7 @@ public override void Move(string sourceFileName, string destFileName) } VerifyDirectoryExists(destFileName); - mockFileDataAccessor.AddFile(destFileName, new MockFileData(sourceFile.Contents)); + mockFileDataAccessor.AddFile(destFileName, new MockFileData(sourceFile)); mockFileDataAccessor.RemoveFile(sourceFileName); }