File tree Expand file tree Collapse file tree 2 files changed +37
-0
lines changed
src/TestableIO.System.IO.Abstractions.TestingHelpers
tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests Expand file tree Collapse file tree 2 files changed +37
-0
lines changed Original file line number Diff line number Diff line change @@ -9,6 +9,24 @@ namespace System.IO.Abstractions.TestingHelpers
99 [ Serializable ]
1010 public class MockFileStream : FileSystemStream , IFileSystemAclSupport
1111 {
12+ /// <summary>
13+ /// Wrapper around a <see cref="Stream" /> with no backing store, which
14+ /// is used as a replacement for a <see cref="FileSystemStream" />. As such
15+ /// it implements the same properties and methods as a <see cref="FileSystemStream" />.
16+ /// </summary>
17+ public new static FileSystemStream Null { get ; } = new NullFileSystemStream ( ) ;
18+
19+ private class NullFileSystemStream : FileSystemStream
20+ {
21+ /// <summary>
22+ /// Initializes a new instance of <see cref="NullFileSystemStream" />.
23+ /// </summary>
24+ public NullFileSystemStream ( ) : base ( Null , "." , true )
25+ {
26+
27+ }
28+ }
29+
1230 private readonly IMockFileDataAccessor mockFileDataAccessor ;
1331 private readonly string path ;
1432 private readonly FileAccess access = FileAccess . ReadWrite ;
Original file line number Diff line number Diff line change @@ -226,5 +226,24 @@ public void MockFileStream_FlushBool_ShouldNotChangePosition([Values] bool flush
226226 Assert . AreEqual ( 200 , stream . Position ) ;
227227 }
228228 }
229+
230+ [ Test ]
231+ public void MockFileStream_Null_ShouldReturnSingletonObject ( )
232+ {
233+ var result1 = MockFileStream . Null ;
234+ var result2 = MockFileStream . Null ;
235+
236+ Assert . AreSame ( result1 , result2 ) ;
237+ }
238+
239+ [ Test ]
240+ public void MockFileStream_Null_ShouldHaveExpectedProperties ( )
241+ {
242+ var result = MockFileStream . Null ;
243+
244+ Assert . AreEqual ( result . Name , "." ) ;
245+ Assert . AreEqual ( result . Length , 0 ) ;
246+ Assert . AreEqual ( result . IsAsync , true ) ;
247+ }
229248 }
230249}
You can’t perform that action at this time.
0 commit comments