@@ -19,6 +19,7 @@ protected override void GenerateSource(StringBuilder sourceBuilder, ClassModel @
1919using Testably.Abstractions.Testing.Initializer;
2020using Testably.Abstractions.TestHelpers;
2121using Testably.Abstractions.TestHelpers.Settings;
22+ using System.IO.Abstractions.TestingHelpers;
2223using Xunit.Abstractions;
2324
2425namespace { @class . Namespace }
@@ -35,18 +36,18 @@ public abstract partial class {@class.Name}<TFileSystem>
3536namespace { @class . Namespace } .{ @class . Name }
3637{{
3738 // ReSharper disable once UnusedMember.Global
38- public sealed class MockFileSystemTests : { @class . Name } <MockFileSystem>, IDisposable
39+ public sealed class MockFileSystemTests : { @class . Name } <Testably.Abstractions.Testing. MockFileSystem>, IDisposable
3940 {{
4041 /// <inheritdoc cref=""{ @class . Name } {{TFileSystem}}.BasePath"" />
4142 public override string BasePath => _directoryCleaner.BasePath;
4243
4344 private readonly IDirectoryCleaner _directoryCleaner;
4445
45- public MockFileSystemTests() : this(new MockFileSystem())
46+ public MockFileSystemTests() : this(new Testably.Abstractions.Testing. MockFileSystem())
4647 {{
4748 }}
4849
49- private MockFileSystemTests(MockFileSystem mockFileSystem) : base(
50+ private MockFileSystemTests(Testably.Abstractions.Testing. MockFileSystem mockFileSystem) : base(
5051 new Test(),
5152 mockFileSystem,
5253 mockFileSystem.TimeSystem)
@@ -73,6 +74,47 @@ public override void SkipIfLongRunningTestsShouldBeSkipped()
7374 }}
7475}}
7576
77+ namespace { @class . Namespace } .{ @class . Name }
78+ {{
79+ // ReSharper disable once UnusedMember.Global
80+ public sealed class TestableIoMockFileSystemTests : { @class . Name } <System.IO.Abstractions.TestingHelpers.MockFileSystem>, IDisposable
81+ {{
82+ /// <inheritdoc cref=""{ @class . Name } {{TFileSystem}}.BasePath"" />
83+ public override string BasePath => _directoryCleaner.BasePath;
84+
85+ private readonly IDirectoryCleaner _directoryCleaner;
86+
87+ public TestableIoMockFileSystemTests() : this(new System.IO.Abstractions.TestingHelpers.MockFileSystem())
88+ {{
89+ }}
90+
91+ private TestableIoMockFileSystemTests(System.IO.Abstractions.TestingHelpers.MockFileSystem mockFileSystem) : base(
92+ new Test(),
93+ mockFileSystem,
94+ new RealTimeSystem())
95+ {{
96+ _directoryCleaner = FileSystem
97+ .SetCurrentDirectoryToEmptyTemporaryDirectory();
98+ }}
99+
100+ /// <inheritdoc cref=""IDisposable.Dispose()"" />
101+ public void Dispose()
102+ => _directoryCleaner.Dispose();
103+
104+ /// <inheritdoc cref=""{ @class . Name } {{TFileSystem}}.SkipIfBrittleTestsShouldBeSkipped(bool)"" />
105+ public override void SkipIfBrittleTestsShouldBeSkipped(bool condition = true)
106+ {{
107+ // Brittle tests are never skipped against the mock file system!
108+ }}
109+
110+ /// <inheritdoc cref=""{ @class . Name } {{TFileSystem}}.LongRunningTestsShouldBeSkipped()"" />
111+ public override void SkipIfLongRunningTestsShouldBeSkipped()
112+ {{
113+ // Long-running tests are never skipped against the mock file system!
114+ }}
115+ }}
116+ }}
117+
76118namespace { @class . Namespace } .{ @class . Name }
77119{{
78120 // ReSharper disable once UnusedMember.Global
@@ -140,19 +182,19 @@ public override void SkipIfLongRunningTestsShouldBeSkipped()
140182namespace { @class . Namespace } .{ @class . Name }
141183{{
142184 // ReSharper disable once UnusedMember.Global
143- public sealed class LinuxFileSystemTests : { @class . Name } <MockFileSystem>, IDisposable
185+ public sealed class LinuxFileSystemTests : { @class . Name } <Testably.Abstractions.Testing. MockFileSystem>, IDisposable
144186 {{
145187 /// <inheritdoc cref=""{ @class . Name } {{TFileSystem}}.BasePath"" />
146188 public override string BasePath => _directoryCleaner.BasePath;
147189
148190 private readonly IDirectoryCleaner _directoryCleaner;
149191
150- public LinuxFileSystemTests() : this(new MockFileSystem(o =>
192+ public LinuxFileSystemTests() : this(new Testably.Abstractions.Testing. MockFileSystem(o =>
151193 o.SimulatingOperatingSystem(SimulationMode.Linux)))
152194 {{
153195 }}
154196
155- private LinuxFileSystemTests(MockFileSystem mockFileSystem) : base(
197+ private LinuxFileSystemTests(Testably.Abstractions.Testing. MockFileSystem mockFileSystem) : base(
156198 new Test(OSPlatform.Linux),
157199 mockFileSystem,
158200 mockFileSystem.TimeSystem)
@@ -180,18 +222,18 @@ public override void SkipIfLongRunningTestsShouldBeSkipped()
180222
181223#if !NETFRAMEWORK
182224 // ReSharper disable once UnusedMember.Global
183- public sealed class MacFileSystemTests : { @class . Name } <MockFileSystem>, IDisposable
225+ public sealed class MacFileSystemTests : { @class . Name } <Testably.Abstractions.Testing. MockFileSystem>, IDisposable
184226 {{
185227 /// <inheritdoc cref=""{ @class . Name } {{TFileSystem}}.BasePath"" />
186228 public override string BasePath => _directoryCleaner.BasePath;
187229
188230 private readonly IDirectoryCleaner _directoryCleaner;
189231
190- public MacFileSystemTests() : this(new MockFileSystem(o =>
232+ public MacFileSystemTests() : this(new Testably.Abstractions.Testing. MockFileSystem(o =>
191233 o.SimulatingOperatingSystem(SimulationMode.MacOS)))
192234 {{
193235 }}
194- private MacFileSystemTests(MockFileSystem mockFileSystem) : base(
236+ private MacFileSystemTests(Testably.Abstractions.Testing. MockFileSystem mockFileSystem) : base(
195237 new Test(OSPlatform.OSX),
196238 mockFileSystem,
197239 mockFileSystem.TimeSystem)
@@ -219,18 +261,18 @@ public override void SkipIfLongRunningTestsShouldBeSkipped()
219261
220262#if !NETFRAMEWORK
221263 // ReSharper disable once UnusedMember.Global
222- public sealed class WindowsFileSystemTests : { @class . Name } <MockFileSystem>, IDisposable
264+ public sealed class WindowsFileSystemTests : { @class . Name } <Testably.Abstractions.Testing. MockFileSystem>, IDisposable
223265 {{
224266 /// <inheritdoc cref=""{ @class . Name } {{TFileSystem}}.BasePath"" />
225267 public override string BasePath => _directoryCleaner.BasePath;
226268
227269 private readonly IDirectoryCleaner _directoryCleaner;
228270
229- public WindowsFileSystemTests() : this(new MockFileSystem(o =>
271+ public WindowsFileSystemTests() : this(new Testably.Abstractions.Testing. MockFileSystem(o =>
230272 o.SimulatingOperatingSystem(SimulationMode.Windows)))
231273 {{
232274 }}
233- private WindowsFileSystemTests(MockFileSystem mockFileSystem) : base(
275+ private WindowsFileSystemTests(Testably.Abstractions.Testing. MockFileSystem mockFileSystem) : base(
234276 new Test(OSPlatform.Windows),
235277 mockFileSystem,
236278 mockFileSystem.TimeSystem)
0 commit comments