예제 #1
0
        public void CloseOrEnqueueForClosingDoesNotAddSessionIfItCanBeClosed()
        {
            // given
            mockSession.TryEnd().Returns(true);
            var target = CreateContext();
            ISessionWatchdogContext targetExplicit = target;

            // when
            targetExplicit.CloseOrEnqueueForClosing(mockSession, 0);

            // then
            Assert.That(target.GetSessionsToClose().Count, Is.EqualTo(0));
            mockSession.Received(1).TryEnd();
        }
예제 #2
0
        void ISessionWatchdogContext.CloseOrEnqueueForClosing(ISessionInternals session, long closeGracePeriodInMillis)
        {
            if (session.TryEnd())
            {
                return;
            }

            var closeTime = timingProvider.ProvideTimestampInMilliseconds() + closeGracePeriodInMillis;

            session.SplitByEventsGracePeriodEndTimeInMillis = closeTime;
            sessionsToClose.Put(session);
        }