public void SynchronousFileSink_should_use_dedicated_blocking_io_dispatcher_by_default()
{
this.AssertAllStagesStopped(() =>
{
TargetFile(f =>
{
var sys = ActorSystem.Create("dispatcher-testing", Utils.UnboundedMailboxConfig);
var materializer = ActorMaterializer.Create(sys);
try
{
//hack for Iterator.continually
Source.FromEnumerator(() => Enumerable.Repeat(_testByteStrings.Head(), Int32.MaxValue).GetEnumerator())
.RunWith(FileIO.ToFile(f), materializer);
((ActorMaterializerImpl)materializer).Supervisor.Tell(StreamSupervisor.GetChildren.Instance, TestActor);
var refs = ExpectMsg<StreamSupervisor.Children>().Refs;
//NOTE: Akka uses "fileSource" as name for DefaultAttributes.FileSink - I think it's mistake on the JVM implementation side
var actorRef = refs.First(@ref => @ref.Path.ToString().Contains("fileSink"));
Utils.AssertDispatcher(actorRef, "akka.stream.default-blocking-io-dispatcher");
}
finally
{
Shutdown(sys);
}
});
}, _materializer);
}