public void A_Sink_must_be_composable_with_importing_2_modules()
{
var probes = CreateProbes();
var sink =
Sink.FromGraph(GraphDsl.Create(Sink.FromSubscriber(probes[0]),
Sink.FromSubscriber(probes[1]), (_, __) => NotUsed.Instance, (b, shape0, shape1) =>
{
var broadcast = b.Add(new Broadcast<int>(3));
b.From(broadcast.Out(0)).Via(Flow.Create<int>().Where(x => x == 0)).To(shape0.Inlet);
b.From(broadcast.Out(1)).Via(Flow.Create<int>().Where(x => x == 1)).To(shape1.Inlet);
b.From(broadcast.Out(2))
.Via(Flow.Create<int>().Where(x => x == 2))
.To(Sink.FromSubscriber(probes[2]));
return new SinkShape<int>(broadcast.In);
}));
Source.From(new[] { 0, 1, 2 }).RunWith(sink, Materializer);
var subscriptions = probes.Select(p => p.ExpectSubscription()).ToList();
subscriptions.ForEach(s => s.Request(3));
for (var i = 0; i < probes.Length; i++)
probes[i].ExpectNext(i);
probes.ForEach(p => p.ExpectComplete());
}