Exemplo n.º 1
0
        public void Should_Wait_For_Request_To_Finish_And_Then_Wait(SettlerType settlerType)
        {
            var testScheduler = new TestScheduler();

            var(settler, matcher) = CreateSettlers(testScheduler, TimeSpan.FromTicks(100), TimeSpan.FromTicks(800));

            matcher.ScheduleRelativeStart(settlerType, 0);
            matcher.ScheduleRelativeEnd(settlerType, 300);

            var observer = testScheduler.Start(() => settler.Settle().Take(1), 100, 100, ReactiveTest.Disposed);

            observer.Messages.Should().ContainInOrder(
                ReactiveTest.OnNext(401, Unit.Default),
                ReactiveTest.OnCompleted(401, Unit.Default)
                );
        }
Exemplo n.º 2
0
        public void Should_Timeout_If_A_Request_Takes_To_Long(SettlerType settlerType)
        {
            var testScheduler = new TestScheduler();

            var(settler, matcher) = CreateSettlers(testScheduler, TimeSpan.FromTicks(200), TimeSpan.FromTicks(500));

            matcher.ScheduleAbsoluteStart(settlerType, 0);
            matcher.ScheduleAbsoluteEnd(settlerType, ReactiveTest.Disposed);

            var observer = testScheduler.Start(() => settler.Settle(), 100, 100, ReactiveTest.Disposed);

            observer.Messages.Should().ContainInOrder(
                ReactiveTest.OnNext(601, Unit.Default),
                ReactiveTest.OnCompleted(802, Unit.Default)
                );
        }
Exemplo n.º 3
0
        public void Should_Complete_After_Final_Request_Timeout(SettlerType settlerTypeA, SettlerType settlerTypeB, SettlerType settlerTypeC)
        {
            var testScheduler = new TestScheduler();

            var(settler, matcher) = CreateSettlers(testScheduler, TimeSpan.FromTicks(100), TimeSpan.FromTicks(800));

            matcher.ScheduleAbsoluteStart(settlerTypeA, 0);
            matcher.ScheduleAbsoluteEnd(settlerTypeA, 200);
            matcher.ScheduleAbsoluteStart(settlerTypeB, 300);
            matcher.ScheduleAbsoluteEnd(settlerTypeB, 400);
            matcher.ScheduleAbsoluteStart(settlerTypeC, 500);
            matcher.ScheduleAbsoluteEnd(settlerTypeC, 550);

            var observer = testScheduler.Start(() => settler.Settle(), 100, 100, 2000);

            observer.Messages.Should().ContainInOrder(
                ReactiveTest.OnNext(301, Unit.Default),
                ReactiveTest.OnCompleted(1452, Unit.Default)
                );
        }
Exemplo n.º 4
0
 public IDisposable ScheduleAbsoluteEnd(SettlerType settlerType, long dueTime) =>
 settlerType switch
 {
Exemplo n.º 5
0
        public void Should_Wait_For_Overlapping_Requests_To_Finish_And_Then_Wait_On_Either_Side(SettlerType settlerTypeA, SettlerType settlerTypeB)
        {
            var testScheduler = new TestScheduler();

            var(settler, matcher) = CreateSettlers(testScheduler, TimeSpan.FromTicks(100), TimeSpan.FromTicks(800));

            matcher.ScheduleAbsoluteStart(settlerTypeA, 0);
            matcher.ScheduleAbsoluteStart(settlerTypeB, 200);
            matcher.ScheduleAbsoluteEnd(settlerTypeA, 250);
            matcher.ScheduleAbsoluteEnd(settlerTypeB, 350);

            var observer = testScheduler.Start(() => settler.Settle().Take(1), 100, 100, ReactiveTest.Disposed);

            observer.Messages.Should().ContainInOrder(
                ReactiveTest.OnNext(351, Unit.Default),
                ReactiveTest.OnCompleted(351, Unit.Default)
                );
        }