@@ -12,7 +12,6 @@ namespace System.IO.Abstractions.TestingHelpers.Tests
1212
1313 public class MockFileCreateTests
1414 {
15-
1615 [ Test ]
1716 public void Mockfile_Create_ShouldCreateNewStream ( )
1817 {
@@ -165,5 +164,58 @@ public void MockFile_Create_ShouldThrowDirectoryNotFoundExceptionIfCreatingAndPa
165164 var exception = Assert . Throws < DirectoryNotFoundException > ( action ) ;
166165 Assert . That ( exception . Message , Does . StartWith ( "Could not find a part of the path" ) ) ;
167166 }
167+
168+ [ Test ]
169+ public void MockFile_Create_TruncateShouldWriteNewContents ( )
170+ {
171+ // Arrange
172+ const string testFileName = @"c:\someFile.txt" ;
173+ var fileSystem = new MockFileSystem ( ) ;
174+
175+ using ( var stream = fileSystem . FileStream . Create ( testFileName , FileMode . Create , FileAccess . Write ) )
176+ {
177+ using ( var writer = new StreamWriter ( stream ) )
178+ {
179+ writer . Write ( "original_text" ) ;
180+ }
181+ }
182+
183+ // Act
184+ using ( var stream = fileSystem . FileStream . Create ( testFileName , FileMode . Truncate , FileAccess . Write ) )
185+ {
186+ using ( var writer = new StreamWriter ( stream ) )
187+ {
188+ writer . Write ( "new_text" ) ;
189+ }
190+ }
191+
192+ // Assert
193+ Assert . That ( fileSystem . File . ReadAllText ( testFileName ) , Is . EqualTo ( "new_text" ) ) ;
194+ }
195+
196+ [ Test ]
197+ public void MockFile_Create_TruncateShouldClearFileContentsOnOpen ( )
198+ {
199+ // Arrange
200+ const string testFileName = @"c:\someFile.txt" ;
201+ var fileSystem = new MockFileSystem ( ) ;
202+
203+ using ( var stream = fileSystem . FileStream . Create ( testFileName , FileMode . Create , FileAccess . Write ) )
204+ {
205+ using ( var writer = new StreamWriter ( stream ) )
206+ {
207+ writer . Write ( "original_text" ) ;
208+ }
209+ }
210+
211+ // Act
212+ using ( var stream = fileSystem . FileStream . Create ( testFileName , FileMode . Truncate , FileAccess . Write ) )
213+ {
214+ // Opening the stream is enough to reset the contents
215+ }
216+
217+ // Assert
218+ Assert . That ( fileSystem . File . ReadAllText ( testFileName ) , Is . EqualTo ( string . Empty ) ) ;
219+ }
168220 }
169221}
0 commit comments