public async Task starting_from_first_detection_some_gaps_with_nonzero_buffer()
        {
            NumberOfStreams = 10;
            await PublishSingleThreaded();

            var gaps = new long[] { NumberOfEvents - 100, NumberOfEvents - 95, NumberOfEvents - 88, NumberOfEvents - 33 };

            await deleteEvents(gaps);



            var statistics = await theDetector.Detect(CancellationToken.None);

            // This gets under the gap, using the buffer
            statistics.CurrentMark.ShouldBe(NumberOfEvents - 101);
            statistics.HighestSequence.ShouldBe(NumberOfEvents);

            var statistics2 = await theDetector.DetectInSafeZone(CancellationToken.None);

            statistics2.CurrentMark.ShouldBe(NumberOfEvents - 96);
        }
예제 #2
0
        public async Task starting_from_first_detection_some_gaps_with_nonzero_buffer()
        {
            NumberOfStreams = 10;
            await PublishSingleThreaded();

            var gaps = new long[] { NumberOfEvents - 100, NumberOfEvents - 95, NumberOfEvents - 88, NumberOfEvents - 33 };

            await deleteEvents(gaps);



            var statistics = await theDetector.Detect(CancellationToken.None);

            // This gets under the gap, using the buffer
            statistics.CurrentMark.ShouldBe(NumberOfEvents - 101);
            statistics.HighestSequence.ShouldBe(NumberOfEvents);

            await makeOldWhereSequenceIsLessThanOrEqualTo(NumberOfEvents - 40);

            var safeTimestamp = statistics.LastUpdated.Value.Subtract(1.Seconds());
            var statistics2   = await theDetector.DetectInSafeZone(safeTimestamp, CancellationToken.None);

            statistics2.CurrentMark.ShouldBe(NumberOfEvents - 34);
        }