public void Init() {
      tblSettings = new Hashtable();
      tblSettings.Add("OAuth2ClientId", "OAuth2ClientId");
      tblSettings.Add("OAuth2ClientSecret", "OAuth2ClientSecret");
      tblSettings.Add("OAuth2ServiceAccountEmail", "OAuth2ServiceAccountEmail");
      tblSettings.Add("OAuth2PrnEmail", "OAuth2PrnEmail");

      tblSettings.Add("OAuth2AccessToken", "OAuth2AccessToken");
      tblSettings.Add("OAuth2Scope", "OAuth2Scope");
      tblSettings.Add("OAuth2RedirectUri", "OAuth2RedirectUri");
      string tempCertificatePath = Path.GetTempFileName();
      using (FileStream fs = File.OpenWrite(tempCertificatePath)) {
        fs.Write(Resources.certificate, 0, Resources.certificate.Length);
      }
      tblSettings.Add("OAuth2JwtCertificatePath", tempCertificatePath);
      tblSettings.Add("OAuth2JwtCertificatePassword", "notasecret");

      appConfig = new MockAppConfig();
      appConfig.MockReadSettings(tblSettings);
      provider = new OAuth2ProviderForServiceAccounts(appConfig);
      oauth2RequestInterceptor.Intercept = true;
    }
 public void TestGetAuthHeader() {
   provider = new OAuth2ProviderForServiceAccounts(appConfig);
   Assert.AreEqual(AUTHORIZATION_HEADER, provider.GetAuthHeader());
 }
    public void TestPropertySettersAndGetters() {
      provider = new OAuth2ProviderForServiceAccounts(appConfig);

      provider.ClientId = TEST_CLIENT_ID;
      Assert.AreEqual(provider.ClientId, TEST_CLIENT_ID);

      provider.ClientSecret = TEST_CLIENT_SECRET;
      Assert.AreEqual(provider.ClientSecret, TEST_CLIENT_SECRET);

      provider.AccessToken = TEST_ACCESS_TOKEN;
      Assert.AreEqual(provider.AccessToken, TEST_ACCESS_TOKEN);

      provider.Scope = TEST_SCOPE;
      Assert.AreEqual(provider.Scope, TEST_SCOPE);

      provider.State = TEST_STATE;
      Assert.AreEqual(provider.State, TEST_STATE);

      provider.OnOAuthTokensObtained = TEST_CALLBACK;
      Assert.AreEqual(provider.OnOAuthTokensObtained, TEST_CALLBACK);

      provider.ServiceAccountEmail = TEST_SERVICE_ACCOUNT_EMAIL;
      Assert.AreEqual(provider.ServiceAccountEmail, TEST_SERVICE_ACCOUNT_EMAIL);

      provider.PrnEmail = TEST_PRN_EMAIL;
      Assert.AreEqual(provider.PrnEmail, TEST_PRN_EMAIL);

      provider.JwtCertificatePath = TEST_JWT_CERTIFICATE_PATH;
      Assert.AreEqual(provider.JwtCertificatePath, TEST_JWT_CERTIFICATE_PATH);

      provider.JwtCertificatePassword = TEST_JWT_CERTIFICATE_PASSWORD;
      Assert.AreEqual(provider.JwtCertificatePassword, TEST_JWT_CERTIFICATE_PASSWORD);
    }
 public void TestConstructor() {
   provider = new OAuth2ProviderForServiceAccounts(appConfig);
   Assert.AreEqual(provider.ClientId, appConfig.OAuth2ClientId);
   Assert.AreEqual(provider.ClientSecret, appConfig.OAuth2ClientSecret);
   Assert.AreEqual(provider.AccessToken, appConfig.OAuth2AccessToken);
   Assert.AreEqual(provider.Scope, appConfig.OAuth2Scope);
   Assert.AreEqual(provider.ServiceAccountEmail, appConfig.OAuth2ServiceAccountEmail);
   Assert.AreEqual(provider.PrnEmail, appConfig.OAuth2PrnEmail);
   Assert.AreEqual(provider.JwtCertificatePath, appConfig.OAuth2CertificatePath);
   Assert.AreEqual(provider.JwtCertificatePassword, appConfig.OAuth2CertificatePassword);
 }