public void CombiningSinksWithSimplifiedApi() { var actor = CreateTestProbe(); var sendRemotely = Sink.ActorRef <int>(actor.Ref, "Done"); var localProcessing = Sink.Aggregate <int, int>(0, (acc, i) => acc + i) .MapMaterializedValue(_ => NotUsed.Instance); var sink = Sink.Combine(i => new Broadcast <int>(i), sendRemotely, localProcessing); WithMaterializer(m => { Source.From(new[] { 0, 1, 2 }).RunWith(sink, m); var received = actor.ReceiveN(3); Assert.That(received, Is.EquivalentTo(new[] { 0, 1, 2 })); }); }
public void A_Sink_must_combine_to_two_sinks_with_simplified_API() { var probes = CreateProbes().Take(2).ToArray(); var sink = Sink.Combine(i => new Broadcast <int>(i), Sink.FromSubscriber(probes[0]), Sink.FromSubscriber(probes[1])); Source.From(new[] { 0, 1, 2 }).RunWith(sink, Materializer); var subscriptions = probes.Select(p => p.ExpectSubscription()).ToList(); subscriptions.ForEach(s => s.Request(1)); probes.ForEach(p => p.ExpectNext(0)); subscriptions.ForEach(s => s.Request(2)); probes.ForEach(p => { p.ExpectNext(1, 2); p.ExpectComplete(); }); }