From 6517f9eaa35f48d921f38e3fa0b6e7171041aecb Mon Sep 17 00:00:00 2001 From: Dirk Rombauts Date: Thu, 21 Nov 2013 15:55:21 +0100 Subject: [PATCH 1/2] Add a unit test for MockFileInfo.OpenRead --- TestHelpers.Tests/MockFileInfoTests.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/TestHelpers.Tests/MockFileInfoTests.cs b/TestHelpers.Tests/MockFileInfoTests.cs index 35bc48bdc..1405ff787 100644 --- a/TestHelpers.Tests/MockFileInfoTests.cs +++ b/TestHelpers.Tests/MockFileInfoTests.cs @@ -188,5 +188,23 @@ public void MockFileInfo_GetDirectory_ShouldReturnDirectoryInfoWithCorrectPath() Assert.AreEqual(@"c:\temp\level1\level2\", result.FullName); } + + [Test] + public void MockFileInfo_OpenRead_ShouldReturnByteContentOfFile() + { + // Arrange + var fileSystem = new MockFileSystem(); + fileSystem.AddFile(@"c:\temp\file.txt", new MockFileData(new byte[] { 1, 2 })); + var fileInfo = fileSystem.FileInfo.FromFileName(@"c:\temp\file.txt"); + + // Act + byte[] result = new byte[2]; + using (var stream = fileInfo.OpenRead()) + { + stream.Read(result, 0, 2); + } + + Assert.AreEqual(new byte[] { 1, 2 }, result); + } } } \ No newline at end of file From aba5d77005da10d2342cda78bb44aeed497c4e16 Mon Sep 17 00:00:00 2001 From: Dirk Rombauts Date: Thu, 21 Nov 2013 15:55:44 +0100 Subject: [PATCH 2/2] Add implementation of MockFileInfo.OpenText --- TestHelpers.Tests/MockFileInfoTests.cs | 18 ++++++++++++++++++ TestingHelpers/MockFileInfo.cs | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/TestHelpers.Tests/MockFileInfoTests.cs b/TestHelpers.Tests/MockFileInfoTests.cs index 1405ff787..1784736f9 100644 --- a/TestHelpers.Tests/MockFileInfoTests.cs +++ b/TestHelpers.Tests/MockFileInfoTests.cs @@ -206,5 +206,23 @@ public void MockFileInfo_OpenRead_ShouldReturnByteContentOfFile() Assert.AreEqual(new byte[] { 1, 2 }, result); } + + [Test] + public void MockFileInfo_OpenText_ShouldReturnStringContentOfFile() + { + // Arrange + var fileSystem = new MockFileSystem(); + fileSystem.AddFile(@"c:\temp\file.txt", new MockFileData(@"line 1\r\nline 2")); + var fileInfo = fileSystem.FileInfo.FromFileName(@"c:\temp\file.txt"); + + // Act + string result; + using (var streamReader = fileInfo.OpenText()) + { + result = streamReader.ReadToEnd(); + } + + Assert.AreEqual(@"line 1\r\nline 2", result); + } } } \ No newline at end of file diff --git a/TestingHelpers/MockFileInfo.cs b/TestingHelpers/MockFileInfo.cs index 6b9c7d3cd..65e4f85f4 100644 --- a/TestingHelpers/MockFileInfo.cs +++ b/TestingHelpers/MockFileInfo.cs @@ -190,7 +190,7 @@ public override Stream OpenRead() public override StreamReader OpenText() { - 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."); + return new StreamReader(OpenRead()); } public override Stream OpenWrite()