public void TestInitialize() { _fakeBuilder = new FakeClassBuilder<RateLimitCacheManager>(); _fakeRateLimitCache = _fakeBuilder.GetFake<IRateLimitCache>(); _fakeRateLimitHelper = _fakeBuilder.GetFake<IRateLimitHelper>(); _fakeTwitterRequester = _fakeBuilder.GetFake<ITwitterRequester>(); _fakeHelpQueryGenerator = _fakeBuilder.GetFake<IHelpQueryGenerator>(); _fakeJsonObjectConverter = _fakeBuilder.GetFake<IJsonObjectConverter>(); _fakeCredentialsAccessor = _fakeBuilder.GetFake<ICredentialsAccessor>(); _fakeTwitterQueryFactory = _fakeBuilder.GetFake<ITwitterQueryFactory>(); InitializeData(); _fakeRateLimitHelper.CallsTo(x => x.GetEndpointRateLimitFromQuery(TEST_QUERY, _credentialsRateLimits)).Returns(_endpointRateLimit); _fakeRateLimitCache.CallsTo(x => x.GetCredentialsRateLimits(_credentials)).Returns(_credentialsRateLimits); _fakeRateLimitCache.CallsTo(x => x.RefreshEntry(_credentials, _credentialsRateLimits)).Invokes(() => { _fakeRateLimitCache.CallsTo(x => x.GetCredentialsRateLimits(_credentials)).Returns(_refreshedCredentialsRateLimits); _fakeRateLimitHelper.CallsTo(x => x.GetEndpointRateLimitFromQuery(TEST_QUERY, _refreshedCredentialsRateLimits)).Returns(_refreshedEndpointRateLimit); }); _fakeCredentialsAccessor.SetupPassThrough<ICredentialsRateLimits>(); _fakeHelpQueryGenerator.CallsTo(x => x.GetCredentialsLimitsQuery()).Returns(TEST_QUERY); _fakeTwitterRequester.CallsTo(x => x.ExecuteQuery(_twitterQuery, null)).Returns(TEST_QUERY); _fakeJsonObjectConverter.CallsTo(x => x.DeserializeObject<ICredentialsRateLimits>(TEST_QUERY, It.IsAny<JsonConverter[]>())).ReturnsNextFromSequence(_credentialsRateLimits, _credentialsRateLimits2); _fakeTwitterQueryFactory.CallsTo(x => x.Create(TEST_QUERY, It.IsAny<HttpMethod>(), It.IsAny<ITwitterCredentials>())).Returns(_twitterQuery); }