public TwitterSearchStream(TwitterProtocolManager protocolManager, GroupChatModel chat, string keyword, OAuthTokens tokens, WebProxy proxy) { if (protocolManager == null) { throw new ArgumentNullException("protocolManager"); } if (chat == null) { throw new ArgumentNullException("chat"); } if (keyword == null) { throw new ArgumentNullException("keyword"); } if (tokens == null) { throw new ArgumentNullException("tokens"); } ProtocolManager = protocolManager; Session = protocolManager.Session; Chat = chat; var options = new StreamOptions(); options.Track.Add(keyword); Stream = new TwitterStream(tokens, null, options); Stream.Proxy = proxy; Stream.StartPublicStream(OnStreamStopped, OnStatusCreated, OnStatusDeleted, OnEvent); MessageRateLimiter = new RateLimiter(5, TimeSpan.FromSeconds(5)); }
public void AboveLimit() { var limiter = new RateLimiter(10, TimeSpan.FromSeconds(10)); for (int i = 0; i < 100; i++) { if (limiter.IsRateLimited) { Assert.AreEqual(10, i); break; } limiter++; } }
public void BelowLimit() { var limiter = new RateLimiter(10, TimeSpan.FromMilliseconds(10)); for (int i = 0; i < 100; i++) { if (limiter.IsRateLimited) { break; } limiter++; } Thread.Sleep(10); Assert.IsFalse(limiter.IsRateLimited); }