public void SynchronousFileSink_should_by_default_write_into_existing_file()
{
this.AssertAllStagesStopped(() =>
{
TargetFile(f =>
{
Func<IEnumerable<string>, Task<IOResult>> write = lines => Source.From(lines)
.Select(ByteString.FromString)
.RunWith(FileIO.ToFile(f), _materializer);
var completion1 = write(_testLines);
completion1.Wait(TimeSpan.FromSeconds(3)).Should().BeTrue();
var lastWrite = new string[100];
for (var i = 0; i < 100; i++)
lastWrite[i] = "x";
var completion2 = write(lastWrite);
completion2.Wait(TimeSpan.FromSeconds(3)).Should().BeTrue();
var result = completion2.Result;
var lastWriteString = new string(lastWrite.SelectMany(x => x).ToArray());
result.Count.Should().Be(lastWriteString.Length);
var testLinesString = new string(_testLines.SelectMany(x => x).ToArray());
CheckFileContent(f, lastWriteString + testLinesString.Substring(100));
});
}, _materializer);
}