Skip to content

Commit

Permalink
Merge pull request #28 from messerli-informatik-ag/custom-stream
Browse files Browse the repository at this point in the history
Allow custom stream factory in FileOpeningBuilderStub
  • Loading branch information
Ruben Schmidmeister authored Sep 11, 2020
2 parents 3671964 + bf3bc9c commit 96f5d0d
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 2 deletions.
15 changes: 14 additions & 1 deletion FileSystem/FileOpeningBuilderStub.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,20 @@
using System;
using System.IO;

namespace Messerli.FileSystem
{
public sealed class FileOpeningBuilderStub : IFileOpeningBuilder
{
private readonly Func<Stream> _createStream;

public FileOpeningBuilderStub()
: this(CreateMemoryStream)
{
}

public FileOpeningBuilderStub(Func<Stream> createStream)
=> _createStream = createStream;

public IFileOpeningBuilder Create(bool create = true) => this;

public IFileOpeningBuilder Truncate(bool truncate = true) => this;
Expand All @@ -16,6 +27,8 @@ public sealed class FileOpeningBuilderStub : IFileOpeningBuilder

public IFileOpeningBuilder CreateNew(bool createNew = true) => this;

public Stream Open(string path) => new MemoryStream();
public Stream Open(string path) => _createStream();

private static Stream CreateMemoryStream() => new MemoryStream();
}
}
2 changes: 1 addition & 1 deletion FileSystem/FileSystem.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk; Microsoft.Build.CentralPackageVersions">
<PropertyGroup>
<Version>0.1.6</Version>
<Version>0.1.7</Version>
<RootNamespace>Messerli.FileSystem</RootNamespace>
<AssemblyName>Messerli.FileSystem</AssemblyName>
</PropertyGroup>
Expand Down
7 changes: 7 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,10 @@ Initial release
## 0.1.6
- Add documentation for `IFileOpeningBuilder`.
- Add stub for `IFileOpeningBuilder`: `FileOpeningBuilderStub`.

## 0.1.7
- `FileOpeningBuilderStub` now optionally accepts a custom factory for creating a stream:
```csharp
using var memoryStream = new MemoryStream();
var fileOpeningBuilder = new FileOpeningBuilderStub(memoryStream.Borrow);
```

0 comments on commit 96f5d0d

Please sign in to comment.