From da13aa39f8a8510f1c961b59060a7e6fe996db03 Mon Sep 17 00:00:00 2001 From: Flepp Jann Date: Wed, 17 Feb 2021 11:39:33 +0100 Subject: [PATCH 1/4] bugfix: File move after directory moved does not cause file to get original directory --- .../MockFileSystem.cs | 4 +++- .../MockFileSystemTests.cs | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/System.IO.Abstractions.TestingHelpers/MockFileSystem.cs b/src/System.IO.Abstractions.TestingHelpers/MockFileSystem.cs index 375ffdcd7..657521b51 100644 --- a/src/System.IO.Abstractions.TestingHelpers/MockFileSystem.cs +++ b/src/System.IO.Abstractions.TestingHelpers/MockFileSystem.cs @@ -249,7 +249,9 @@ public void MoveDirectory(string sourcePath, string destPath) foreach (var path in affectedPaths) { var newPath = StringOperations.Replace(path, sourcePath, destPath); - files[newPath] = files[path]; + var entry = files[path]; + entry.Path = newPath; + files[newPath] = entry; files.Remove(path); } } diff --git a/tests/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs b/tests/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs index fa0e8ab4d..c260da3e9 100644 --- a/tests/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs +++ b/tests/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs @@ -250,6 +250,20 @@ public void MockFileSystem_AddFilesFromEmbeddedResource_ShouldAddAllTheFiles() Assert.Contains(XFS.Path(@"C:\SecondTestFile.txt"), fileSystem.AllFiles.ToList()); } + [Test] + public void MockFileSystem_MoveDirectoryAndFile_ShouldMoveCorrectly() + { + var fileSystem = new MockFileSystem(); + fileSystem.AddFile(@"C:\project1\project1.txt", string.Empty); + fileSystem.AddFile(@"C:\project1\subdir\other.txt", string.Empty); + + fileSystem.Directory.Move(@"C:\project1", @"C:\proj1"); + fileSystem.File.Move(@"C:\proj1\project1.txt", @"C:\proj1\proj1.txt"); + + var expected = new[] { @"C:\proj1\proj1.txt", @"C:\proj1\subdir\other.txt" }; + CollectionAssert.AreEquivalent(expected, fileSystem.AllFiles); + } + [Test] public void MockFileSystem_RemoveFile_RemovesFiles() { From 53fb444d2532e5a2e1c3821ff9f16c104c34e4b0 Mon Sep 17 00:00:00 2001 From: Flepp Jann Date: Wed, 17 Feb 2021 11:44:33 +0100 Subject: [PATCH 2/4] fixed breaking test on ubuntu --- .../MockFileSystemTests.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs b/tests/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs index c260da3e9..1b8578aff 100644 --- a/tests/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs +++ b/tests/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs @@ -254,13 +254,13 @@ public void MockFileSystem_AddFilesFromEmbeddedResource_ShouldAddAllTheFiles() public void MockFileSystem_MoveDirectoryAndFile_ShouldMoveCorrectly() { var fileSystem = new MockFileSystem(); - fileSystem.AddFile(@"C:\project1\project1.txt", string.Empty); - fileSystem.AddFile(@"C:\project1\subdir\other.txt", string.Empty); + fileSystem.AddFile(XFS.Path(@"C:\project1\project1.txt"), string.Empty); + fileSystem.AddFile(XFS.Path(@"C:\project1\subdir\other.txt"), string.Empty); - fileSystem.Directory.Move(@"C:\project1", @"C:\proj1"); - fileSystem.File.Move(@"C:\proj1\project1.txt", @"C:\proj1\proj1.txt"); + fileSystem.Directory.Move(XFS.Path(@"C:\project1"), XFS.Path(@"C:\proj1")); + fileSystem.File.Move(XFS.Path(@"C:\proj1\project1.txt"), XFS.Path(@"C:\proj1\proj1.txt")); - var expected = new[] { @"C:\proj1\proj1.txt", @"C:\proj1\subdir\other.txt" }; + var expected = new[] { XFS.Path(@"C:\proj1\proj1.txt"), XFS.Path(@"C:\proj1\subdir\other.txt") }; CollectionAssert.AreEquivalent(expected, fileSystem.AllFiles); } From f770f224ec3402c7fbb08d4b3186736acc294a6c Mon Sep 17 00:00:00 2001 From: Flepp Jann Date: Wed, 17 Feb 2021 13:17:31 +0100 Subject: [PATCH 3/4] fixed breaking test --- .../MockFileSystemTests.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs b/tests/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs index 1b8578aff..7102f1c82 100644 --- a/tests/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs +++ b/tests/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs @@ -254,13 +254,13 @@ public void MockFileSystem_AddFilesFromEmbeddedResource_ShouldAddAllTheFiles() public void MockFileSystem_MoveDirectoryAndFile_ShouldMoveCorrectly() { var fileSystem = new MockFileSystem(); - fileSystem.AddFile(XFS.Path(@"C:\project1\project1.txt"), string.Empty); - fileSystem.AddFile(XFS.Path(@"C:\project1\subdir\other.txt"), string.Empty); + fileSystem.AddFile(XFS.Path(@"C:\source\project.txt"), string.Empty); + fileSystem.AddFile(XFS.Path(@"C:\source\subdir\other.txt"), string.Empty); - fileSystem.Directory.Move(XFS.Path(@"C:\project1"), XFS.Path(@"C:\proj1")); - fileSystem.File.Move(XFS.Path(@"C:\proj1\project1.txt"), XFS.Path(@"C:\proj1\proj1.txt")); + fileSystem.Directory.Move(XFS.Path(@"C:\source"), XFS.Path(@"C:\target")); + fileSystem.File.Move(XFS.Path(@"C:\target\project.txt"), XFS.Path(@"C:\target\proj.txt")); - var expected = new[] { XFS.Path(@"C:\proj1\proj1.txt"), XFS.Path(@"C:\proj1\subdir\other.txt") }; + var expected = new[] { XFS.Path(@"C:\target\proj.txt"), XFS.Path(@"C:\target\subdir\other.txt") }; CollectionAssert.AreEquivalent(expected, fileSystem.AllFiles); } From def563081ee2f8e04ef40b6fdc664d7418a77998 Mon Sep 17 00:00:00 2001 From: Flepp Jann Date: Wed, 17 Feb 2021 13:18:36 +0100 Subject: [PATCH 4/4] Removed unrequired using statement --- .../MockFileSystemTests.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs b/tests/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs index 7102f1c82..4fe25c07d 100644 --- a/tests/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs +++ b/tests/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs @@ -1,7 +1,6 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; -using System.Diagnostics; using System.Linq; using System.Reflection; using System.Text;