diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/CreateTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/CreateTests.cs index eada3313f..cd9daa75b 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/CreateTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/CreateTests.cs @@ -74,6 +74,35 @@ public void Create_ShouldCreateParentDirectories() result.ToString().Should().Be(path); } + [SkippableTheory] + [AutoData] + public void Create_ShouldRefreshExistsCacheForCurrentItem_ExceptOnNetFramework(string path) + { + IDirectoryInfo sut1 = FileSystem.DirectoryInfo.New(path); + IDirectoryInfo sut2 = FileSystem.DirectoryInfo.New(path); + IDirectoryInfo sut3 = FileSystem.DirectoryInfo.New(path); + sut1.Exists.Should().BeFalse(); + sut2.Exists.Should().BeFalse(); + // Do not call Exists for `sut3` + + sut1.Create(); + + if (Test.IsNetFramework) + { + sut1.Exists.Should().BeFalse(); + sut2.Exists.Should().BeFalse(); + sut3.Exists.Should().BeFalse(); + } + else + { + sut1.Exists.Should().BeTrue(); + sut2.Exists.Should().BeFalse(); + sut3.Exists.Should().BeTrue(); + } + + FileSystem.Directory.Exists(path).Should().BeTrue(); + } + [SkippableTheory] [InlineData("")] [InlineData("/")] diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/CreateTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/CreateTests.cs index 21b38fc3d..4567b9108 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/CreateTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/CreateTests.cs @@ -21,20 +21,28 @@ public void Create_MissingFile_ShouldCreateFile(string path) [SkippableTheory] [AutoData] - public void Create_ShouldRefreshExistsCache_ExceptOnNetFramework(string path) + public void Create_ShouldRefreshExistsCacheForCurrentItem_ExceptOnNetFramework(string path) { - IFileInfo sut = FileSystem.FileInfo.New(path); - sut.Exists.Should().BeFalse(); + IFileInfo sut1 = FileSystem.FileInfo.New(path); + IFileInfo sut2 = FileSystem.FileInfo.New(path); + IFileInfo sut3 = FileSystem.FileInfo.New(path); + sut1.Exists.Should().BeFalse(); + sut2.Exists.Should().BeFalse(); + // Do not call Exists for `sut3` - using FileSystemStream stream = sut.Create(); + using FileSystemStream stream = sut1.Create(); if (Test.IsNetFramework) { - sut.Exists.Should().BeFalse(); + sut1.Exists.Should().BeFalse(); + sut2.Exists.Should().BeFalse(); + sut3.Exists.Should().BeFalse(); } else { - sut.Exists.Should().BeTrue(); + sut1.Exists.Should().BeTrue(); + sut2.Exists.Should().BeFalse(); + sut3.Exists.Should().BeTrue(); } FileSystem.File.Exists(path).Should().BeTrue();