public void A_Flow_based_on_a_tick_publisher_must_be_usable_with_zip_for_a_simple_form_of_rate_limiting()
{
this.AssertAllStagesStopped(() =>
{
var c = TestSubscriber.CreateManualProbe<int>(this);
RunnableGraph.FromGraph(GraphDsl.Create(b =>
{
var zip = b.Add(new Zip<int, string>());
b.From(Source.From(Enumerable.Range(1, 100))).To(zip.In0);
b.From(Source.Tick(TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1), "tick")
.MapMaterializedValue(_ => NotUsed.Instance)).To(zip.In1);
b.From(zip.Out)
.Via(Flow.Create<Tuple<int, string>>().Select(t => t.Item1))
.To(Sink.FromSubscriber(c));
return ClosedShape.Instance;
})).Run(Materializer);
var sub = c.ExpectSubscription();
sub.Request(1000);
c.ExpectNext(1);
c.ExpectNoMsg(TimeSpan.FromMilliseconds(200));
c.ExpectNext(2);
c.ExpectNoMsg(TimeSpan.FromMilliseconds(200));
sub.Cancel();
}, Materializer);
}