NGitHub.Services.UserService.IsFollowingAsync C# (CSharp) Method

IsFollowingAsync() public method

public IsFollowingAsync ( string user, Action callback, Action onError ) : GitHubRequestAsyncHandle
user string
callback Action
onError Action
return GitHubRequestAsyncHandle
        public GitHubRequestAsyncHandle IsFollowingAsync(string user,
            Action<bool> callback,
            Action<GitHubException> onError)
        {
            Requires.ArgumentNotNull(user, "user");

            var resource = string.Format("/user/following/{0}", user);
            var request = new GitHubRequest(resource, API.v3, Method.GET);

            return _gitHubClient.CallApiAsync<object>(
                                        request,
                                        r => {
                                            Debug.Assert(false, "all responses should be errors");
                                            callback(true);
                                        },
                                        e => {
                                            if (e.Response.StatusCode == HttpStatusCode.NoContent) {
                                                callback(true);
                                                return;
                                            }

                                            if (e.Response.StatusCode == HttpStatusCode.NotFound) {
                                                callback(false);
                                                return;
                                            }

                                            onError(e);
                                        });
        }

Usage Example

示例#1
0
        public void IsFollowingAsync_ShouldCallbackWithFalse_WhenResponseIsNotFound()
        {
            var mockResponse = new Mock<IGitHubResponse<object>>(MockBehavior.Strict);
            var mockClient = new Mock<IGitHubClient>(MockBehavior.Strict);
            mockResponse.Setup(r => r.ErrorException)
                        .Returns(new Exception());
            mockResponse.Setup(r => r.StatusCode)
                        .Returns(HttpStatusCode.NotFound);
            mockClient.Setup(c => c.CallApiAsync<object>(It.IsAny<GitHubRequest>(),
                                                         It.IsAny<Action<IGitHubResponse<object>>>(),
                                                         It.IsAny<Action<GitHubException>>()))
                      .Callback<GitHubRequest,
                                Action<IGitHubResponse<object>>,
                                Action<GitHubException>>((req, c, e) => {
                                    e(new GitHubException(mockResponse.Object, ErrorType.ResourceNotFound));
                                })
                      .Returns(TestHelpers.CreateTestHandle());
            var userService = new UserService(mockClient.Object);

            var isFollowing = true;
            userService.IsFollowingAsync("akilb",
                                         fl => isFollowing = fl,
                                         e => { });

            Assert.IsFalse(isFollowing);
        }
All Usage Examples Of NGitHub.Services.UserService::IsFollowingAsync