Skip to content

Commit a135f19

Browse files
darl2ngfgreinacher
authored andcommitted
Fix MockFileSerialization with empty PathVerifier (#522)
1 parent fae1a7c commit a135f19

3 files changed

Lines changed: 42 additions & 1 deletion

File tree

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
namespace System.IO.Abstractions.TestingHelpers.Tests
2+
{
3+
using NUnit.Framework;
4+
using Text;
5+
using XFS = MockUnixSupport;
6+
[TestFixture]
7+
class MockFileSystemSerializationTests
8+
{
9+
[Test]
10+
public void SerializationBytes()
11+
{
12+
// Arrange
13+
string path = XFS.Path(@"c:\something\demo.txt");
14+
15+
var content = "Hello there!" + Environment.NewLine + "Second line!" + Environment.NewLine;
16+
var expected = Encoding.ASCII.GetBytes(content); //Convert a C# string to a byte array
17+
18+
var fileSystem = new MockFileSystem();
19+
fileSystem.AddDirectory(XFS.Path(@"c:\something"));
20+
21+
fileSystem.File.WriteAllBytes(path, expected);
22+
23+
//Act
24+
var memoryStream = new MemoryStream();
25+
var serializer = new Runtime.Serialization.Formatters.Binary.BinaryFormatter();
26+
serializer.Serialize(memoryStream, fileSystem);
27+
memoryStream.Flush();
28+
memoryStream.Position = 0;
29+
fileSystem = (MockFileSystem)serializer.Deserialize(memoryStream);
30+
memoryStream.Dispose();
31+
32+
// Assert
33+
Assert.AreEqual(
34+
expected,
35+
fileSystem.GetFile(path).Contents);
36+
Assert.AreEqual(
37+
content,
38+
fileSystem.File.ReadAllBytes(path));
39+
}
40+
}
41+
}

System.IO.Abstractions.TestingHelpers/MockFileSystem.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ public class MockFileSystem : IFileSystem, IMockFileDataAccessor
1313
private const string DEFAULT_CURRENT_DIRECTORY = @"C:\";
1414

1515
private readonly IDictionary<string, MockFileData> files;
16-
[NonSerialized]
1716
private readonly PathVerifier pathVerifier;
1817

1918
public MockFileSystem() : this(null) { }

System.IO.Abstractions.TestingHelpers/PathVerifier.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ namespace System.IO.Abstractions.TestingHelpers
44
{
55
using XFS = MockUnixSupport;
66

7+
[Serializable]
78
public class PathVerifier
89
{
910
private static readonly char[] AdditionalInvalidPathChars = { '*', '?' };

0 commit comments

Comments
 (0)