Skip to content

Commit b060737

Browse files
committed
Merge pull request #54 from dirkrombauts/master
Add implementation of MockFileInfo.OpenText
2 parents de7446e + aba5d77 commit b060737

2 files changed

Lines changed: 37 additions & 1 deletion

File tree

TestHelpers.Tests/MockFileInfoTests.cs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,5 +188,41 @@ public void MockFileInfo_GetDirectory_ShouldReturnDirectoryInfoWithCorrectPath()
188188

189189
Assert.AreEqual(@"c:\temp\level1\level2\", result.FullName);
190190
}
191+
192+
[Test]
193+
public void MockFileInfo_OpenRead_ShouldReturnByteContentOfFile()
194+
{
195+
// Arrange
196+
var fileSystem = new MockFileSystem();
197+
fileSystem.AddFile(@"c:\temp\file.txt", new MockFileData(new byte[] { 1, 2 }));
198+
var fileInfo = fileSystem.FileInfo.FromFileName(@"c:\temp\file.txt");
199+
200+
// Act
201+
byte[] result = new byte[2];
202+
using (var stream = fileInfo.OpenRead())
203+
{
204+
stream.Read(result, 0, 2);
205+
}
206+
207+
Assert.AreEqual(new byte[] { 1, 2 }, result);
208+
}
209+
210+
[Test]
211+
public void MockFileInfo_OpenText_ShouldReturnStringContentOfFile()
212+
{
213+
// Arrange
214+
var fileSystem = new MockFileSystem();
215+
fileSystem.AddFile(@"c:\temp\file.txt", new MockFileData(@"line 1\r\nline 2"));
216+
var fileInfo = fileSystem.FileInfo.FromFileName(@"c:\temp\file.txt");
217+
218+
// Act
219+
string result;
220+
using (var streamReader = fileInfo.OpenText())
221+
{
222+
result = streamReader.ReadToEnd();
223+
}
224+
225+
Assert.AreEqual(@"line 1\r\nline 2", result);
226+
}
191227
}
192228
}

TestingHelpers/MockFileInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ public override Stream OpenRead()
190190

191191
public override StreamReader OpenText()
192192
{
193-
throw new NotImplementedException("This test helper hasn't been implemented yet. They are implemented on an as-needed basis. As it seems like you need it, now would be a great time to send us a pull request over at https://github.com/tathamoddie/System.IO.Abstractions. You know, because it's open source and all.");
193+
return new StreamReader(OpenRead());
194194
}
195195

196196
public override Stream OpenWrite()

0 commit comments

Comments
 (0)