Exemplo n.º 1
0
        public async Task GetSubredditsForAuthenticatedUserAsync_WhenCalledAndRedditRateLimitHasNotExceeded_AssertRemoveUserBannedContentAsyncWasCalledOnRedditFilterLogic()
        {
            IRedditAccessToken redditAccessToken = CreateRedditAccessToken();
            bool includeNsfwContent = _random.Next(1, 100) > 50;
            bool onlyNsfwContent    = _random.Next(1, 100) > 50;

            const bool willExceedRateLimit            = false;
            IRedditList <IRedditSubreddit> redditList = CreateRedditList();
            IRedditResponse <IRedditList <IRedditSubreddit> > redditResponse = CreateRedditResponse(redditList: redditList);
            IRedditLogic sut = CreateSut(willExceedRateLimit: willExceedRateLimit, redditResponse: redditResponse);

            await sut.GetSubredditsForAuthenticatedUserAsync(redditAccessToken, includeNsfwContent, onlyNsfwContent);

            _redditFilterLogicMock.Verify(m => m.RemoveUserBannedContentAsync(It.Is <IEnumerable <IRedditSubreddit> >(value => value == redditList)), Times.Once);
        }
Exemplo n.º 2
0
        public async Task GetLinksAsync_WhenCalledAndRedditRateLimitHasNotExceeded_AssertRemoveUserBannedContentAsyncWasCalledOnRedditFilterLogicForEachSubredditInCollection()
        {
            int numberOfSubreddits = _random.Next(1, 10);
            IRedditAccessToken             accessToken         = CreateRedditAccessToken();
            IEnumerable <IRedditSubreddit> subredditCollection = CreateSubredditCollection(numberOfSubreddits: numberOfSubreddits);
            bool includeNsfwContent = _random.Next(100) > 50;
            bool onlyNsfwContent    = _random.Next(100) > 50;

            const bool willExceedRateLimit       = false;
            IRedditList <IRedditLink> redditList = CreateRedditList();
            IRedditResponse <IRedditList <IRedditLink> > redditResponse = CreateRedditResponse(redditList: redditList);
            IRedditLogic sut = CreateSut(willExceedRateLimit: willExceedRateLimit, redditResponse: redditResponse);

            await sut.GetLinksAsync(accessToken, subredditCollection, includeNsfwContent, onlyNsfwContent);

            _redditFilterLogicMock.Verify(m => m.RemoveUserBannedContentAsync(It.Is <IEnumerable <IRedditLink> >(value => value == redditList)), Times.Exactly(numberOfSubreddits));
        }
Exemplo n.º 3
0
        private Mock <IRedditResponse <IRedditList <IRedditSubreddit> > > CreateRedditResponseMock(int?rateLimitUsed = null, int?rateLimitRemaining = null, DateTime?rateLimitResetTime = null, DateTime?receivedTime = null, IRedditList <IRedditSubreddit> redditList = null)
        {
            Mock <IRedditResponse <IRedditList <IRedditSubreddit> > > redditResponseMock = new Mock <IRedditResponse <IRedditList <IRedditSubreddit> > >();

            redditResponseMock.Setup(m => m.RateLimitUsed)
            .Returns(rateLimitUsed ?? _random.Next(1, 60));
            redditResponseMock.Setup(m => m.RateLimitRemaining)
            .Returns(rateLimitRemaining ?? _random.Next(1, 60));
            redditResponseMock.Setup(m => m.RateLimitResetTime)
            .Returns(rateLimitResetTime ?? DateTime.Now.AddSeconds(_random.Next(30, 60)));
            redditResponseMock.Setup(m => m.ReceivedTime)
            .Returns(receivedTime ?? DateTime.Now.AddSeconds(_random.Next(1, 10) * -1));
            redditResponseMock.Setup(m => m.Data)
            .Returns(redditList ?? CreateRedditList());
            return(redditResponseMock);
        }
Exemplo n.º 4
0
 private IRedditResponse <IRedditList <IRedditSubreddit> > CreateRedditResponse(int?rateLimitUsed = null, int?rateLimitRemaining = null, DateTime?rateLimitResetTime = null, DateTime?receivedTime = null, IRedditList <IRedditSubreddit> redditList = null)
 {
     return(CreateRedditResponseMock(rateLimitUsed, rateLimitRemaining, rateLimitResetTime, receivedTime, redditList).Object);
 }