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);
        }
Esempio n. 8
0
        public void TestGetAuthorizationUrl_NoDuplicateParameters()
        {
            MockAdsOAuthProviderImpl provider = new MockAdsOAuthProviderImpl(appConfig, newAppConfig);

            Assert.AreEqual(1, Regex.Matches(provider.GetAuthorizationUrl(), "access_type=").Count);
        }