public void GetAuthorizationCodeToken_CallToAuthorizeIsNotImplementedAndMustBeDoneOutsideManually_GetAValidToken() { var clientId = TestHelpers.OAuthConsumerKey; var url = $"https://bitbucket.org/site/oauth2/authorize?client_id={clientId}&response_type=code"; if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { url = url.Replace("&", "^&"); Process.Start(new ProcessStartInfo("cmd", $"/c start {url}") { CreateNoWindow = true }); } else { throw new PlatformNotSupportedException("look here to complete that implementation if needed: https://github.com/dotnet/corefx/issues/10361"); } var code = $"TODO: replace this by your code delivered to {clientId} with debugger"; // PLACE A BREAKPOINT HERE, to affect the code variable before going further var oauth2TokenProvider = new OAuth2TokenProvider(clientId, TestHelpers.OAuthConsumerSecretKey); var token = oauth2TokenProvider.GetAuthorizationCodeToken(code); token.ShouldNotBeNull(); token.AccessToken.ShouldNotBeNullOrEmpty(nameof(token.AccessToken)); token.RefreshToken.ShouldNotBeNullOrEmpty(nameof(token.RefreshToken)); token.ExpiresIn.ShouldBeGreaterThan(0, nameof(token.ExpiresIn)); token.ExpiresAt.ShouldBeGreaterThan(DateTime.UtcNow); token.Scopes.ShouldNotBeNullOrEmpty(nameof(token.Scopes)); token.TokenType.ShouldBe("bearer", nameof(token.TokenType)); }
public void GetClientCredentialsToken_TestConsumer_GetAValidToken() { var oauth2TokenProvider = new OAuth2TokenProvider(TestHelpers.OAuthConsumerKey, TestHelpers.OAuthConsumerSecretKey); var token = oauth2TokenProvider.GetClientCredentialsToken(); token.ShouldNotBeNull(); token.AccessToken.ShouldNotBeNullOrEmpty(nameof(token.AccessToken)); token.RefreshToken.ShouldNotBeNullOrEmpty(nameof(token.RefreshToken)); token.ExpiresIn.ShouldBeGreaterThan(0, nameof(token.ExpiresIn)); token.ExpiresAt.ShouldBeGreaterThan(DateTime.UtcNow); token.Scopes.ShouldNotBeNullOrEmpty(nameof(token.Scopes)); token.TokenType.ShouldBe("bearer", nameof(token.TokenType)); }
public void GetResourceOwnerPasswordCredentialsToken_OAuthConsumerIsNotNecessaryTheSameThanTheOneForWhichWeGetTheCredentials_GetAValidToken() { var oauth2TokenProvider = new OAuth2TokenProvider(TestHelpers.OAuthConsumerKey, TestHelpers.OAuthConsumerSecretKey); var token = oauth2TokenProvider.GetResourceOwnerPasswordCredentialsToken(TestHelpers.UserName, TestHelpers.Password); token.ShouldNotBeNull(); token.AccessToken.ShouldNotBeNullOrEmpty(nameof(token.AccessToken)); token.RefreshToken.ShouldNotBeNullOrEmpty(nameof(token.RefreshToken)); token.ExpiresIn.ShouldBeGreaterThan(0, nameof(token.ExpiresIn)); token.ExpiresAt.ShouldBeGreaterThan(DateTime.UtcNow); token.Scopes.ShouldNotBeNullOrEmpty(nameof(token.Scopes)); token.TokenType.ShouldBe("bearer", nameof(token.TokenType)); }
public void RefreshToken_AskToRefreshATokenRetrievedWithGetToken_GetANewToken() { var oauth2TokenProvider = new OAuth2TokenProvider(TestHelpers.OAuthConsumerKey, TestHelpers.OAuthConsumerSecretKey); var token = oauth2TokenProvider.GetClientCredentialsToken(); var refreshedToken = oauth2TokenProvider.RefreshToken(token); refreshedToken.ShouldNotBeNull(); refreshedToken.AccessToken.ShouldNotBe(token.AccessToken, "AccessToken should have been changed"); refreshedToken.RefreshToken.ShouldBe(token.RefreshToken, "RefreshToken should note have been changed"); refreshedToken.TokenType.ShouldBe(token.TokenType, "TokenType should note have been changed"); // the scopes order is not maintain by that operation, so we should parse and order them to compare the two lists var originalScopes = token.Scopes.Split(' ').ToList(); originalScopes.Sort(); var refreshedScopes = refreshedToken.Scopes.Split(' ').ToList(); refreshedScopes.Sort(); refreshedScopes.ShouldBe(originalScopes, "Scopes should note have been changed"); }