public ITokenRateLimit GetQueryRateLimit(string query, ITwitterCredentials credentials)
        {
            var rateLimits     = _rateLimitCache.GetTokenRateLimits(credentials);
            var queryRateLimit = _rateLimitHelper.GetTokenRateLimitFromQuery(query, rateLimits);

            if (rateLimits == null || DoesQueryNeedsToRefreshTheCacheInformation(queryRateLimit))
            {
                rateLimits     = RefreshCredentialsRateLimits(credentials);
                queryRateLimit = _rateLimitHelper.GetTokenRateLimitFromQuery(query, rateLimits);
            }

            return(queryRateLimit);
        }
예제 #2
0
        private void GetTokenRateLimitFromQuery_EndpointAssociatedCorrectly(Expression <Func <ITokenRateLimits, ITokenRateLimit> > rateLimit, string associatedURL, IRateLimitHelper rateLimitHelper)
        {
            // Arrange
            var fakeTokenRateLimit = A.Fake <ITokenRateLimit>();

            _tokenRateLimits.CallsTo(rateLimit).Returns(fakeTokenRateLimit);

            // Act
            var tokenRateLimit = rateLimitHelper.GetTokenRateLimitFromQuery(associatedURL, _tokenRateLimits);

            // Assert
            Assert.AreEqual(tokenRateLimit, fakeTokenRateLimit);
        }
        private void GetTokenRateLimitFromQuery_EndpointAssociatedCorrectly(Expression<Func<ITokenRateLimits, ITokenRateLimit>> rateLimit, string associatedURL, IRateLimitHelper rateLimitHelper)
        {
            // Arrange
            var fakeTokenRateLimit = A.Fake<ITokenRateLimit>();
            _tokenRateLimits.CallsTo(rateLimit).Returns(fakeTokenRateLimit);

            // Act
            var tokenRateLimit = rateLimitHelper.GetTokenRateLimitFromQuery(associatedURL, _tokenRateLimits);

            // Assert
            Assert.AreEqual(tokenRateLimit, fakeTokenRateLimit);
        }