diff --git a/Octokit.Tests/Clients/AuthorizationsClientTests.cs b/Octokit.Tests/Clients/AuthorizationsClientTests.cs index 425ad205..2c2b0bae 100644 --- a/Octokit.Tests/Clients/AuthorizationsClientTests.cs +++ b/Octokit.Tests/Clients/AuthorizationsClientTests.cs @@ -229,14 +229,22 @@ namespace Octokit.Tests.Clients [Fact] public async Task GetsOrCreatesAuthenticationWithFingerprintAtCorrectUrl() { - var data = new NewAuthorization { Fingerprint = "ha-ha-fingerprint"}; + var data = new NewAuthorization { Fingerprint = "ha-ha-fingerprint" }; var client = Substitute.For(); var authEndpoint = new AuthorizationsClient(client); - authEndpoint.GetOrCreateApplicationAuthentication("clientId", "secret", data); + Uri calledUri = null; + dynamic calledBody = null; - client.Received().Put(Arg.Is(u => u.ToString() == "authorizations/clients/clientId/ha-ha-fingerprint"), - Args.Object); + client.Put(Arg.Do(u => calledUri = u), Arg.Do(body => calledBody = body)); + + authEndpoint.GetOrCreateApplicationAuthentication("clientId", "secret", data); + + Assert.NotNull(calledUri); + Assert.Equal(calledUri.ToString(), "authorizations/clients/clientId"); + + Assert.NotNull(calledBody); + Assert.Equal(calledBody.fingerprint, "ha-ha-fingerprint"); } } diff --git a/Octokit/Clients/AuthorizationsClient.cs b/Octokit/Clients/AuthorizationsClient.cs index 716cfad1..16f7ea66 100644 --- a/Octokit/Clients/AuthorizationsClient.cs +++ b/Octokit/Clients/AuthorizationsClient.cs @@ -178,13 +178,11 @@ namespace Octokit client_secret = clientSecret, scopes = newAuthorization.Scopes, note = newAuthorization.Note, - note_url = newAuthorization.NoteUrl + note_url = newAuthorization.NoteUrl, + fingerprint = newAuthorization.Fingerprint }; - var endpoint = string.IsNullOrWhiteSpace(newAuthorization.Fingerprint) - ? ApiUrls.AuthorizationsForClient(clientId) - : ApiUrls.AuthorizationsForClient(clientId, newAuthorization.Fingerprint); - + var endpoint = ApiUrls.AuthorizationsForClient(clientId); return ApiConnection.Put(endpoint, requestData); } @@ -224,14 +222,13 @@ namespace Octokit client_secret = clientSecret, scopes = newAuthorization.Scopes, note = newAuthorization.Note, - note_url = newAuthorization.NoteUrl + note_url = newAuthorization.NoteUrl, + fingerprint = newAuthorization.Fingerprint }; try { - var endpoint = string.IsNullOrWhiteSpace(newAuthorization.Fingerprint) - ? ApiUrls.AuthorizationsForClient(clientId) - : ApiUrls.AuthorizationsForClient(clientId, newAuthorization.Fingerprint); + var endpoint = ApiUrls.AuthorizationsForClient(clientId); return await ApiConnection.Put( endpoint, diff --git a/Octokit/Helpers/ApiUrls.Authorizations.cs b/Octokit/Helpers/ApiUrls.Authorizations.cs index 19f53c44..4cae9842 100644 --- a/Octokit/Helpers/ApiUrls.Authorizations.cs +++ b/Octokit/Helpers/ApiUrls.Authorizations.cs @@ -34,21 +34,6 @@ namespace Octokit return "authorizations/clients/{0}".FormatUri(clientId); } - /// - /// Returns the that authorizations for a given client and fingerprint - /// - /// - /// The 20 character OAuth app client key for - /// which to create the token. - /// - /// A unique string to distinguish an authorization from others created - /// for the same client and user. - /// - public static Uri AuthorizationsForClient(string clientId, string fingerprint) - { - return "authorizations/clients/{0}/{1}".FormatUri(clientId, fingerprint); - } - public static Uri ApplicationAuthorization(string clientId) { return "applications/{0}/tokens".FormatUri(clientId);