Exemple #1
0
        private static IAccountActivityStream CreateAccountActivityStream()
        {
            var client = new TwitterClient("", "");
            var stream = client.CreateTwitterExecutionContext().Container.Resolve <IAccountActivityStream>();

            stream.AccountUserId = ACCOUNT_ACTIVITY_USER_ID;
            return(stream);
        }
Exemple #2
0
        public async Task GetEndpointRateLimit()
        {
            if (!EndToEndTestConfig.ShouldRunEndToEndTests)
            {
                return;
            }

            var parameters = new TwitterClientParameters();

            parameters.BeforeRegistrationCompletes += (sender, args) =>
            {
                args.TweetinviContainer.RegisterDecorator <TwitterAccessorSpy, ITwitterAccessor>();
            };

            var client = new TwitterClient(EndToEndTestConfig.TweetinviTest.Credentials, parameters);

            TweetinviEvents.SubscribeToClientEvents(client);

            var twitterAccessorSpy = client.CreateTwitterExecutionContext().Container.Resolve <ITwitterAccessor>() as TwitterAccessorSpy;

            client.ClientSettings.RateLimitTrackerMode = RateLimitTrackerMode.TrackOnly;

            // act
            var firstApplicationRateLimits = await client.RateLimits.GetEndpointRateLimit("https://api.twitter.com/1.1/statuses/home_timeline.json", RateLimitsSource.TwitterApiOnly);

            var rateLimits = await client.RateLimits.GetEndpointRateLimit("https://api.twitter.com/1.1/statuses/home_timeline.json");

            await client.Timelines.GetHomeTimeline();

            var fromCacheLimits = await client.RateLimits.GetEndpointRateLimit("https://api.twitter.com/1.1/statuses/home_timeline.json");

            // assert
            A.CallTo(() => twitterAccessorSpy.FakedObject.ExecuteRequest <CredentialsRateLimitsDTO>(It.IsAny <ITwitterRequest>()))
            .MustHaveHappenedTwiceExactly();

            Assert.Equal(firstApplicationRateLimits.Remaining, fromCacheLimits.Remaining + 1);
            Assert.Same(rateLimits, fromCacheLimits);

            // act
            await client.RateLimits.ClearRateLimitCache();

            await client.RateLimits.GetEndpointRateLimit("https://api.twitter.com/1.1/statuses/home_timeline.json");

            A.CallTo(() => twitterAccessorSpy.FakedObject.ExecuteRequest <CredentialsRateLimitsDTO>(It.IsAny <ITwitterRequest>()))
            .MustHaveHappened(3, Times.Exactly);
        }