Esempio n. 1
0
        public async Task TestCommentsFaceBookService()
        {
            var service = new FaceBookService(new SafeHttpClient(), new FaceBookConfiguration {
                AppId = _appId, AppSecret = _appSecret
            });

            var pageIds = await service.GetPagesAsync("WorldsBestOfTheBest");

            Assert.IsNotNull(pageIds);
            Assert.IsNotEmpty(pageIds);

            var postIds = await service.GetPostsAsync(pageIds.FirstOrDefault().Id);

            Assert.IsNotNull(postIds);
            Assert.IsNotEmpty(postIds);

            var comments = await service.GetCommentsAsync(postIds.FirstOrDefault().Id);

            Assert.IsNotNull(comments);
            Assert.IsNotEmpty(comments);

            TestContext.WriteLine($"Comments: {comments.Count}");
            foreach (var comment in comments.Take(100))
            {
                Assert.IsNotNull(comment.Content);
                Assert.IsNotNull(comment.Author);
                Assert.AreEqual("Facebook", comment.Source);
            }
        }
        public async Task GetPostsAsyncPagingTest()
        {
            // Model Setup
            _mockFacebookPostsResponse.Posts.Paging = new Facebook.Paging
            {
                Next = $"https://graph.facebook.com/v2.10/Page1?access_token={_mockAccessTokenResponse.AccessToken}"
            };

            // Mock
            var httpMock = new Mock <ISafeHttpClient>(MockBehavior.Strict);

            httpMock.SetupSequence(x => x.GetAsync <Facebook.FacebookPostsResponse>(It.Is <string>(s => checkApiCall(s, "/v2.10/Page1", null))))
            .ReturnsAsync(_mockFacebookPostsResponse)
            .ReturnsAsync(_mockFacebookPostsResponseSecondPage);
            httpMock.Setup(x => x.GetAsync <Facebook.AccessTokenResponse>(It.Is <string>(s => s.Contains("https://graph.facebook.com/oauth/access_token"))))
            .ReturnsAsync(_mockAccessTokenResponse);

            // Run
            var service = new FaceBookService(httpMock.Object, config);
            var posts   = await service.GetPostsAsync("Page1");

            // Assert
            Assert.IsNotNull(posts);
            Assert.AreEqual(4, posts.Count);

            // Verify
            httpMock.VerifyAll();
        }
        public async Task GetPostsAsyncNullTest()
        {
            // Mock
            var httpMock = new Mock <ISafeHttpClient>(MockBehavior.Strict);

            httpMock.Setup(x => x.GetAsync <Facebook.FacebookPostsResponse>(It.Is <string>(s => checkApiCall(s, "/v2.10/Page1", null))))
            .ReturnsAsync(null as Facebook.FacebookPostsResponse);
            httpMock.Setup(x => x.GetAsync <Facebook.AccessTokenResponse>(It.Is <string>(s => s.Contains("https://graph.facebook.com/oauth/access_token"))))
            .ReturnsAsync(_mockAccessTokenResponse);

            // Run
            var service = new FaceBookService(httpMock.Object, config);
            var posts   = await service.GetPostsAsync("Page1");

            // Assert
            Assert.IsNotNull(posts);
            Assert.IsEmpty(posts);

            // Verify
            httpMock.VerifyAll();
        }