public void A_TakeWithin_must_deliver_elements_within_the_duration_but_not_afterwards()
{
var input = 1;
var p = TestPublisher.CreateManualProbe<int>(this);
var c = TestSubscriber.CreateManualProbe<int>(this);
Source.FromPublisher(p)
.TakeWithin(TimeSpan.FromSeconds(1))
.To(Sink.FromSubscriber(c))
.Run(Materializer);
var pSub = p.ExpectSubscription();
var cSub = c.ExpectSubscription();
cSub.Request(100);
var demand1 = (int)pSub.ExpectRequest();
Enumerable.Range(1,demand1).ForEach(_=>pSub.SendNext(input++));
var demand2 = (int) pSub.ExpectRequest();
Enumerable.Range(1, demand2).ForEach(_ => pSub.SendNext(input++));
var demand3 = (int)pSub.ExpectRequest();
var sentN = demand1 + demand2;
Enumerable.Range(1, sentN).ForEach(n => c.ExpectNext(n));
Within(TimeSpan.FromSeconds(2), c.ExpectComplete);
Enumerable.Range(1, demand3).ForEach(_ => pSub.SendNext(input++));
c.ExpectNoMsg(TimeSpan.FromMilliseconds(200));
}