/// <summary> /// Create a new instance of the GitHub API v3 client using the specified connection. /// </summary> /// <param name="connection">The underlying <seealso cref="IConnection"/> used to make requests</param> public GitHubClient(IConnection connection) { Ensure.ArgumentNotNull(connection, nameof(connection)); Connection = connection; var apiConnection = new ApiConnection(connection); Activity = new ActivitiesClient(apiConnection); Authorization = new AuthorizationsClient(apiConnection); Enterprise = new EnterpriseClient(apiConnection); Gist = new GistsClient(apiConnection); Git = new GitDatabaseClient(apiConnection); GitHubApps = new GitHubAppsClient(apiConnection); Issue = new IssuesClient(apiConnection); Migration = new MigrationClient(apiConnection); Miscellaneous = new MiscellaneousClient(apiConnection); Oauth = new OauthClient(connection); Organization = new OrganizationsClient(apiConnection); PullRequest = new PullRequestsClient(apiConnection); Repository = new RepositoriesClient(apiConnection); Search = new SearchClient(apiConnection); User = new UsersClient(apiConnection); Reaction = new ReactionsClient(apiConnection); Check = new ChecksClient(apiConnection); }
public async Task PostsWithCorrectBodyAndContentType() { var responseToken = new OauthToken(); var response = Substitute.For<IResponse<OauthToken>>(); response.BodyAsObject.Returns(responseToken); var connection = Substitute.For<IConnection>(); connection.BaseAddress.Returns(new Uri("https://api.github.com/")); Uri calledUri = null; FormUrlEncodedContent calledBody = null; Uri calledHostAddress = null; connection.Post<OauthToken>( Arg.Do<Uri>(uri => calledUri = uri), Arg.Do<object>(body => calledBody = body as FormUrlEncodedContent), "application/json", null, Arg.Do<Uri>(uri => calledHostAddress = uri)) .Returns(_ => Task.FromResult(response)); var client = new OauthClient(connection); var token = await client.CreateAccessToken(new OauthTokenRequest("secretid", "secretsecret", "code") { RedirectUri = new Uri("https://example.com/foo") }); Assert.Same(responseToken, token); Assert.Equal("login/oauth/access_token", calledUri.ToString()); Assert.NotNull(calledBody); Assert.Equal("https://github.com/", calledHostAddress.ToString()); Assert.Equal( "client_id=secretid&client_secret=secretsecret&code=code&redirect_uri=https%3A%2F%2Fexample.com%2Ffoo", await calledBody.ReadAsStringAsync()); }
/// <summary> /// Create a new instance of the GitHub API v3 client using the specified connection. /// </summary> /// <param name="connection">The underlying <seealso cref="IConnection"/> used to make requests</param> public GitHubClient(IConnection connection) { Ensure.ArgumentNotNull(connection, "connection"); Connection = connection; var apiConnection = new ApiConnection(connection); Activity = new ActivitiesClient(apiConnection); Authorization = new AuthorizationsClient(apiConnection); Deployment = new DeploymentsClient(apiConnection); Enterprise = new EnterpriseClient(apiConnection); Gist = new GistsClient(apiConnection); Git = new GitDatabaseClient(apiConnection); Issue = new IssuesClient(apiConnection); Migration = new MigrationClient(apiConnection); Miscellaneous = new MiscellaneousClient(connection); Notification = new NotificationsClient(apiConnection); Oauth = new OauthClient(connection); Organization = new OrganizationsClient(apiConnection); PullRequest = new PullRequestsClient(apiConnection); Repository = new RepositoriesClient(apiConnection); Search = new SearchClient(apiConnection); SshKey = new SshKeysClient(apiConnection); User = new UsersClient(apiConnection); Reaction = new ReactionsClient(apiConnection); }
public void ReturnsProperAuthorizeUrl(string baseAddress, string expectedUrl) { var connection = Substitute.For<IConnection>(); connection.BaseAddress.Returns(new Uri(baseAddress)); var client = new OauthClient(connection); var result = client.GetGitHubLoginUrl(new OauthLoginRequest("secret")); Assert.Equal(new Uri(expectedUrl), result); }
public void ReturnsUrlWithAllParameters() { var request = new OauthLoginRequest("secret") { RedirectUri = new Uri("https://example.com/foo?foo=bar"), Scopes = { "foo", "bar" }, State = "canARY" }; var connection = Substitute.For<IConnection>(); connection.BaseAddress.Returns(new Uri("https://api.github.com")); var client = new OauthClient(connection); var result = client.GetGitHubLoginUrl(request); Assert.Equal("/login/oauth/authorize", result.AbsolutePath); Assert.Equal("?client_id=secret&redirect_uri=https%3A%2F%2Fexample.com%2Ffoo%3Ffoo%3Dbar&scope=foo%2Cbar&state=canARY", result.Query); }
/// <summary> /// Create a new instance of the GitHub API v3 client using the specified connection. /// </summary> /// <param name="connection">The underlying <seealso cref="IConnection"/> used to make requests</param> public GitHubClient(IConnection connection) { Ensure.ArgumentNotNull(connection, "connection"); Connection = connection; var apiConnection = new ApiConnection(connection); Authorization = new AuthorizationsClient(apiConnection); Activity = new ActivitiesClient(apiConnection); Issue = new IssuesClient(apiConnection); Miscellaneous = new MiscellaneousClient(connection); Notification = new NotificationsClient(apiConnection); Oauth = new OauthClient(connection); Organization = new OrganizationsClient(apiConnection); PullRequest = new PullRequestsClient(apiConnection); Repository = new RepositoriesClient(apiConnection); Gist = new GistsClient(apiConnection); Release = new ReleasesClient(apiConnection); User = new UsersClient(apiConnection); SshKey = new SshKeysClient(apiConnection); GitDatabase = new GitDatabaseClient(apiConnection); Search = new SearchClient(apiConnection); Deployment = new DeploymentsClient(apiConnection); }
/// <summary> /// Create a new instance of the GitHub API v3 client using the specified connection. /// </summary> /// <param name="connection">The underlying <seealso cref="IConnection"/> used to make requests</param> public GitHubClient(IConnection connection) { Ensure.ArgumentNotNull(connection, "connection"); Connection = connection; var apiConnection = new ApiConnection(connection); Activity = new ActivitiesClient(apiConnection); Authorization = new AuthorizationsClient(apiConnection); Enterprise = new EnterpriseClient(apiConnection); Gist = new GistsClient(apiConnection); Git = new GitDatabaseClient(apiConnection); Issue = new IssuesClient(apiConnection); Migration = new MigrationClient(apiConnection); Miscellaneous = new MiscellaneousClient(connection); Oauth = new OauthClient(connection); Organization = new OrganizationsClient(apiConnection); PullRequest = new PullRequestsClient(apiConnection); Repository = new RepositoriesClient(apiConnection); Search = new SearchClient(apiConnection); User = new UsersClient(apiConnection); Reaction = new ReactionsClient(apiConnection); }