diff --git a/System.IO.Abstractions.TestingHelpers.Tests/MockDirectoryTests.cs b/System.IO.Abstractions.TestingHelpers.Tests/MockDirectoryTests.cs index 9cd17fa75..d7f48234c 100644 --- a/System.IO.Abstractions.TestingHelpers.Tests/MockDirectoryTests.cs +++ b/System.IO.Abstractions.TestingHelpers.Tests/MockDirectoryTests.cs @@ -1184,11 +1184,12 @@ public void MockDirectory_GetCurrentDirectory_ShouldReturnValueFromFileSystemCon Assert.AreEqual(directory, actual); } - - + [Test] - public void MockDirectory_GetCurrentDirectory_ShouldReturnDefaultPathWhenNotSet() { - string directory = Path.GetTempPath(); + public void MockDirectory_GetCurrentDirectory_ShouldReturnDefaultPathWhenNotSet() + { + string directory = XFS.Path(@"C:\"); + var fileSystem = new MockFileSystem(); var actual = fileSystem.Directory.GetCurrentDirectory(); diff --git a/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs b/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs index 6ddcd4fba..34fc81400 100644 --- a/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs +++ b/System.IO.Abstractions.TestingHelpers.Tests/MockFileSystemTests.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; @@ -292,5 +292,17 @@ public void MockFileSystem_GetFiles_ThrowsArgumentExceptionForInvalidCharacters( // Assert Assert.Throws(getFilesWithInvalidCharacterInPath); } + + [Test] + [TestCase(null)] + [TestCase(@"C:\somepath")] + public void MockFileSystem_DefaultState_CurrentDirectoryExists(string currentDirectory) + { + var fs = new MockFileSystem(null, currentDirectory); + + var actualCurrentDirectory = fs.DirectoryInfo.FromDirectoryName("."); + + Assert.IsTrue(actualCurrentDirectory.Exists); + } } } diff --git a/System.IO.Abstractions.TestingHelpers/MockFileSystem.cs b/System.IO.Abstractions.TestingHelpers/MockFileSystem.cs index 186dcebbe..ca540cd51 100644 --- a/System.IO.Abstractions.TestingHelpers/MockFileSystem.cs +++ b/System.IO.Abstractions.TestingHelpers/MockFileSystem.cs @@ -9,6 +9,8 @@ namespace System.IO.Abstractions.TestingHelpers [Serializable] public class MockFileSystem : IFileSystem, IMockFileDataAccessor { + private const string DEFAULT_CURRENT_DIRECTORY = @"C:\"; + private readonly IDictionary files; [NonSerialized] private readonly PathVerifier pathVerifier; @@ -19,7 +21,7 @@ public MockFileSystem(IDictionary files, string currentDir { if (string.IsNullOrEmpty(currentDirectory)) { - currentDirectory = IO.Path.GetTempPath(); + currentDirectory = XFS.Path(DEFAULT_CURRENT_DIRECTORY); } pathVerifier = new PathVerifier(this); @@ -42,6 +44,11 @@ public MockFileSystem(IDictionary files, string currentDir AddFile(entry.Key, entry.Value); } } + + if (!FileExists(currentDirectory)) + { + AddDirectory(currentDirectory); + } } public FileBase File { get; }