public void TestRefreshAccessToken() { MockAdsOAuthProviderImpl provider = new MockAdsOAuthProviderImpl(appConfig, newAppConfig); // Application flow, offline = false. appConfig.OAuth2Mode = OAuth2Flow.APPLICATION; provider.IsOffline = false; Assert.Throws <ArgumentException>(delegate() { provider.RefreshAccessToken(); }); // Application flow, offline = true. appConfig.OAuth2Mode = OAuth2Flow.APPLICATION; provider.IsOffline = true; provider.RefreshAccessToken(); Assert.AreEqual(TEST_ACCESS_TOKEN_NEW, provider.Config.OAuth2AccessToken); Assert.AreEqual((int)EXPIRES_IN_NEW.TotalSeconds, provider.ExpiresIn); Assert.AreEqual(ISSUED_AT_NEW, provider.UpdatedOn); // Service account flow. appConfig.OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT; provider.RefreshAccessToken(); Assert.AreEqual(TEST_ACCESS_TOKEN_NEW, provider.Config.OAuth2AccessToken); Assert.AreEqual((int)EXPIRES_IN_NEW.TotalSeconds, provider.ExpiresIn); Assert.AreEqual(ISSUED_AT_NEW, provider.UpdatedOn); }
public void TestGetAuthorizationUrl() { MockAdsOAuthProviderImpl provider = new MockAdsOAuthProviderImpl(appConfig, newAppConfig); string temp; // Scope is a required parameter. temp = provider.Config.OAuth2Scope; provider.Config.OAuth2Scope = ""; Assert.Throws <ArgumentNullException>(delegate() { provider.GetAuthorizationUrl(); }); provider.Config.OAuth2Scope = temp; // RedirectUri is a required parameter. temp = provider.Config.OAuth2RedirectUri; provider.Config.OAuth2RedirectUri = ""; Assert.Throws <ArgumentNullException>(delegate() { provider.GetAuthorizationUrl(); }); provider.Config.OAuth2RedirectUri = temp; // Attempt a normal call, to validate the parameter passing. Assert.DoesNotThrow(delegate() { provider.GetAuthorizationUrl(); }); }
public void TestRevokeRefreshToken() { MockAdsOAuthProviderImpl provider = new MockAdsOAuthProviderImpl(appConfig, newAppConfig); appConfig.OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT; Assert.DoesNotThrow(delegate() { provider.RevokeRefreshToken(); }); }
public void TestGenerateAccessTokenForServiceAccount() { MockAdsOAuthProviderImpl provider = new MockAdsOAuthProviderImpl(appConfig, newAppConfig); appConfig.OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT; provider.GenerateAccessTokenForServiceAccount(); Assert.AreEqual(TEST_ACCESS_TOKEN_NEW, provider.Config.OAuth2AccessToken); Assert.AreEqual((int)EXPIRES_IN_NEW.TotalSeconds, provider.ExpiresIn); Assert.AreEqual(ISSUED_AT_NEW, provider.UpdatedOn); }
public void TestGetAuthHeader() { MockAdsOAuthProviderImpl provider = new MockAdsOAuthProviderImpl(appConfig, appConfig); // Note: The logic of expiring v/s non-expiring token refresh is in the Google.Auth library. // Since the test mocks out calls to the Google.Auth library, we restrict this test to verify // that the header formatting is correct. string expected = $"Bearer {TEST_ACCESS_TOKEN}"; Assert.AreEqual(expected, provider.GetAuthHeader()); }
public void TestProperties() { MockAdsOAuthProviderImpl provider = new MockAdsOAuthProviderImpl(appConfig, newAppConfig); TimeSpan EXPIRES_IN_PROPERTY_TESTING = TimeSpan.FromSeconds(800); provider.ExpiresIn = (int)EXPIRES_IN_PROPERTY_TESTING.TotalSeconds; Assert.AreEqual(EXPIRES_IN_PROPERTY_TESTING.TotalSeconds, provider.ExpiresIn); provider.IsOffline = true; Assert.AreEqual(true, provider.IsOffline); }
public void TestFetchAccessAndRefreshTokens() { MockAdsOAuthProviderImpl provider = new MockAdsOAuthProviderImpl(appConfig, newAppConfig); provider.AuthorizationCode = TEST_AUTHORIZATION_CODE; provider.FetchAccessAndRefreshTokens(TEST_AUTHORIZATION_CODE); Assert.AreEqual(TEST_ACCESS_TOKEN_NEW, provider.Config.OAuth2AccessToken); Assert.AreEqual(TEST_REFRESH_TOKEN_NEW, provider.Config.OAuth2RefreshToken); Assert.AreEqual(EXPIRES_IN_NEW.TotalSeconds, provider.ExpiresIn); Assert.AreEqual(ISSUED_AT_NEW, provider.UpdatedOn); }
public void TestGetAuthorizationUrl_NoDuplicateParameters() { MockAdsOAuthProviderImpl provider = new MockAdsOAuthProviderImpl(appConfig, newAppConfig); Assert.AreEqual(1, Regex.Matches(provider.GetAuthorizationUrl(), "access_type=").Count); }