new OfflineCredentials.Builder() .forApi(OfflineCredentials.Api.AD_MANAGER) .withTokenUrlServer(testHttpServer.getServerUrl()) .fromFile(
/** * Tests that the builder builds and gets an OAuth2 token correctly. */ @Test public void testGenerateCredential() throws Exception { testHttpServer.setMockResponseBody( "{\"access_token\" : \"accessToken\"," + "\"token_type\" : \"Bearer\"," + "\"expires_in\" : 3600," + "\"refresh_token\" : \"newRefreshToken\"}"); OfflineCredentials offlineCredentials = new OfflineCredentials.Builder() .forApi(OfflineCredentials.Api.AD_MANAGER) .withTokenUrlServer(testHttpServer.getServerUrl()) .withClientSecrets("clientId", "clientSecret") .withRefreshToken("refreshToken") .build(); Credential credential = offlineCredentials.generateCredential(); assertTrue(testHttpServer.getLastRequestBody().contains("grant_type=refresh_token")); assertTrue(testHttpServer.getLastRequestBody().contains("refresh_token=refreshToken")); assertTrue(testHttpServer.getLastRequestBody().contains("client_id=clientId")); assertTrue(testHttpServer.getLastRequestBody().contains("client_secret=clientSecret")); assertEquals("accessToken", credential.getAccessToken()); assertEquals("newRefreshToken", credential.getRefreshToken()); }
/** * Tests generating OAuth2 credentials. */ @Test public void testGenerateCredential() throws Exception { HttpTransport httpTransport = new NetHttpTransport(); OfflineCredentials offlineCredentials = new OfflineCredentials.Builder(oAuth2Helper) .forApi(OfflineCredentials.Api.AD_MANAGER) .withClientSecrets("clientId", "clientSecret") .withRefreshToken("refreshToken") .withHttpTransport(httpTransport) .build(); when(oAuth2Helper.callRefreshToken(Mockito.<Credential>anyObject())).thenReturn(true); Credential credential = offlineCredentials.generateCredential(); assertEquals( "clientId", ((ClientParametersAuthentication) credential.getClientAuthentication()).getClientId()); assertEquals( "clientSecret", ((ClientParametersAuthentication) credential.getClientAuthentication()).getClientSecret()); assertEquals("refreshToken", credential.getRefreshToken()); assertSame(httpTransport, credential.getTransport()); }
/** * Tests that the builder correctly reads properties from a configuration. */ @Test public void testReadPropertiesFromConfiguration_adWordsServiceAccount() throws ValidationException { PropertiesConfiguration config = new PropertiesConfiguration(); String jsonKeyFilePath = "someJsonKeyFilePath"; config.setProperty("api.adwords.jsonKeyFilePath", jsonKeyFilePath); OfflineCredentials offlineCredentials = new OfflineCredentials.Builder() .forApi(OfflineCredentials.Api.ADWORDS) .from(config) .build(); assertEquals(jsonKeyFilePath, offlineCredentials.getJsonKeyFilePath()); assertNull("service account user should be null", offlineCredentials.getServiceAccountUser()); // Create another credential with the service account user set. String serviceAccountUser = "someUser@example.com"; offlineCredentials = new OfflineCredentials.Builder() .forApi(OfflineCredentials.Api.ADWORDS) .from(config) .withServiceAccountUser(serviceAccountUser) .build(); assertEquals(jsonKeyFilePath, offlineCredentials.getJsonKeyFilePath()); assertEquals(serviceAccountUser, offlineCredentials.getServiceAccountUser()); }
/** * Tests generating OAuth2 credentials. */ @Test public void testGenerateCredential_defaultTransport() throws Exception { OfflineCredentials offlineCredentials = new OfflineCredentials.Builder(oAuth2Helper) .forApi(OfflineCredentials.Api.AD_MANAGER) .withClientSecrets("clientId", "clientSecret") .withRefreshToken("refreshToken") .build(); when(oAuth2Helper.callRefreshToken(Mockito.<Credential>anyObject())).thenReturn(true); Credential credential = offlineCredentials.generateCredential(); assertEquals( "clientId", ((ClientParametersAuthentication) credential.getClientAuthentication()).getClientId()); assertEquals( "clientSecret", ((ClientParametersAuthentication) credential.getClientAuthentication()).getClientSecret()); assertEquals("refreshToken", credential.getRefreshToken()); assertSame(ForApiBuilder.DEFAULT_HTTP_TRANSPORT, credential.getTransport()); }
/** * Tests that the builder correctly reads properties from a configuration. */ @Test public void testReadPropertiesFromConfiguration_dfpServiceAccount() throws ValidationException { PropertiesConfiguration config = new PropertiesConfiguration(); String jsonKeyFilePath = "someJsonKeyFilePath"; config.setProperty("api.admanager.jsonKeyFilePath", jsonKeyFilePath); OfflineCredentials offlineCredentials = new OfflineCredentials.Builder() .forApi(OfflineCredentials.Api.AD_MANAGER) .from(config) .build(); assertEquals(jsonKeyFilePath, offlineCredentials.getJsonKeyFilePath()); assertNull("service account user should be null", offlineCredentials.getServiceAccountUser()); // Create another credential with the service account user set. String serviceAccountUser = "someUser@example.com"; offlineCredentials = new OfflineCredentials.Builder() .forApi(OfflineCredentials.Api.AD_MANAGER) .from(config) .withServiceAccountUser(serviceAccountUser) .build(); assertEquals(jsonKeyFilePath, offlineCredentials.getJsonKeyFilePath()); assertEquals(serviceAccountUser, offlineCredentials.getServiceAccountUser()); }
/** * Tests that the builder correctly reads properties from a configuration. */ @Test public void testReadPropertiesFromConfiguration_properPrefix() throws ValidationException { PropertiesConfiguration config = new PropertiesConfiguration(); config.setProperty("api.admanager.clientId", "clientIdDfp"); config.setProperty("api.admanager.clientSecret", "clientSecretDfp"); config.setProperty("api.admanager.refreshToken", "refreshTokenDfp"); config.setProperty("api.adwords.clientId", "clientIdAdWords"); config.setProperty("api.adwords.clientSecret", "clientSecretAdWords"); config.setProperty("api.adwords.refreshToken", "refreshTokenAdWords"); OfflineCredentials offlineCredentials = new OfflineCredentials.Builder() .forApi(OfflineCredentials.Api.AD_MANAGER) .from(config) .build(); assertEquals("clientIdDfp", offlineCredentials.getClientId()); assertEquals("clientSecretDfp", offlineCredentials.getClientSecret()); assertEquals("refreshTokenDfp", offlineCredentials.getRefreshToken()); }
/** * Tests that the builder correctly fails on a bad configuration that has serviceAccountUser * specified but does not have the jsonKeyFilePath. */ @Test public void testReadPropertiesFromConfiguration_serviceAccountUserNoKeyFile() throws Exception { PropertiesConfiguration config = new PropertiesConfiguration(); config.setProperty("api.admanager.clientId", "clientId"); config.setProperty("api.admanager.clientSecret", "clientSecret"); config.setProperty("api.admanager.refreshToken", "refreshToken"); config.setProperty("api.admanager.serviceAccountUser", "someUser@example.com"); thrown.expect(ValidationException.class); new OfflineCredentials.Builder() .forApi(OfflineCredentials.Api.AD_MANAGER) .from(config) .build(); }
/** * Tests that the builder correctly reads properties from a configuration. */ @Test public void testReadPropertiesFromConfiguration_adwords() throws ValidationException { PropertiesConfiguration config = new PropertiesConfiguration(); config.setProperty("api.adwords.clientId", "clientId"); config.setProperty("api.adwords.clientSecret", "clientSecret"); config.setProperty("api.adwords.refreshToken", "refreshToken"); OfflineCredentials offlineCredentials = new OfflineCredentials.Builder() .forApi(OfflineCredentials.Api.ADWORDS) .from(config) .build(); assertEquals("clientId", offlineCredentials.getClientId()); assertEquals("clientSecret", offlineCredentials.getClientSecret()); assertEquals("refreshToken", offlineCredentials.getRefreshToken()); }
/** * Tests that the builder correctly reads properties from a configuration. */ @Test public void testReadPropertiesFromConfiguration_dfp() throws ValidationException { PropertiesConfiguration config = new PropertiesConfiguration(); config.setProperty("api.admanager.clientId", "clientId"); config.setProperty("api.admanager.clientSecret", "clientSecret"); config.setProperty("api.admanager.refreshToken", "refreshToken"); OfflineCredentials offlineCredentials = new OfflineCredentials.Builder() .forApi(OfflineCredentials.Api.AD_MANAGER) .from(config) .build(); assertEquals("clientId", offlineCredentials.getClientId()); assertEquals("clientSecret", offlineCredentials.getClientSecret()); assertEquals("refreshToken", offlineCredentials.getRefreshToken()); }
/** * Tests that the builder builds correctly. */ @Test public void testBuilder() throws Exception { HttpTransport httpTransport = new NetHttpTransport(); OfflineCredentials offlineCredentials = new OfflineCredentials.Builder() .forApi(OfflineCredentials.Api.AD_MANAGER) .withClientSecrets("clientId", "clientSecret") .withRefreshToken("refreshToken") .withHttpTransport(httpTransport) .build(); assertEquals("clientId", offlineCredentials.getClientId()); assertEquals("clientSecret", offlineCredentials.getClientSecret()); assertEquals("refreshToken", offlineCredentials.getRefreshToken()); assertSame(httpTransport, offlineCredentials.getHttpTransport()); }
/** * Tests generating OAuth2 credentials. */ @Test public void testGenerateCredential_cantRefresh() throws Exception { OfflineCredentials offlineCredentials = new OfflineCredentials.Builder(oAuth2Helper) .forApi(OfflineCredentials.Api.AD_MANAGER) .withClientSecrets("clientId", "clientSecret") .withRefreshToken("refreshToken") .build(); when(oAuth2Helper.callRefreshToken(Mockito.<Credential>anyObject())).thenReturn(false); thrown.expect(OAuthException.class); offlineCredentials.generateCredential(); } }
/** * Tests that the builder correctly fails on a bad configuration. */ @Test public void testReadPropertiesFromConfiguration_multipleOAuthTypes() throws Exception { PropertiesConfiguration config = new PropertiesConfiguration(); config.setProperty("api.admanager.clientSecret", "clientSecret"); config.setProperty("api.admanager.jsonKeyFilePath", "jsonKeyFilePath"); thrown.expect(ValidationException.class); new OfflineCredentials.Builder() .forApi(OfflineCredentials.Api.AD_MANAGER) .from(config) .build(); }
/** * Tests that the builder correctly fails on a bad configuration. */ @Test public void testReadPropertiesFromConfiguration_missingRefreshToken() throws Exception { PropertiesConfiguration config = new PropertiesConfiguration(); config.setProperty("api.admanager.clientId", "clientId"); config.setProperty("api.admanager.clientSecret", "clientSecret"); thrown.expect(ValidationException.class); new OfflineCredentials.Builder() .forApi(OfflineCredentials.Api.AD_MANAGER) .from(config) .build(); }
/** * Tests generating OAuth2 credentials. */ @Test public void testGenerateCredential_IOException() throws Exception { OfflineCredentials offlineCredentials = new OfflineCredentials.Builder(oAuth2Helper) .forApi(OfflineCredentials.Api.AD_MANAGER) .withClientSecrets("clientId", "clientSecret") .withRefreshToken("refreshToken") .build(); when(oAuth2Helper.callRefreshToken(Mockito.<Credential>anyObject())) .thenThrow(new IOException()); thrown.expect(OAuthException.class); offlineCredentials.generateCredential(); }
/** * Tests that the builder correctly reads properties from a configuration. */ @Test public void testReadPropertiesFromConfiguration_properPrefixServiceAccount() throws ValidationException { PropertiesConfiguration config = new PropertiesConfiguration(); config.setProperty("api.admanager.jsonKeyFilePath", "jsonKeyFilePathDfp"); config.setProperty("api.adwords.jsonKeyFilePath", "jsonKeyFilePathAdWords"); OfflineCredentials offlineCredentials = new OfflineCredentials.Builder() .forApi(OfflineCredentials.Api.AD_MANAGER) .from(config) .build(); assertEquals("jsonKeyFilePathDfp", offlineCredentials.getJsonKeyFilePath()); }
/** * Tests that the builder correctly fails on a bad configuration. */ @Test public void testReadPropertiesFromConfiguration_missingClientId() throws Exception { PropertiesConfiguration config = new PropertiesConfiguration(); config.setProperty("api.admanager.clientSecret", "clientSecret"); config.setProperty("api.admanager.refreshToken", "refreshToken"); thrown.expect(ValidationException.class); new OfflineCredentials.Builder() .forApi(OfflineCredentials.Api.AD_MANAGER) .from(config) .build(); }
/** * Tests that the builder does not fail when missing everything but a service account key and * service account user. */ @Test public void testReadPropertiesFromConfiguration_onlyKeyFilePathAndUser() throws Exception { PropertiesConfiguration config = new PropertiesConfiguration(); config.setProperty("api.admanager.jsonKeyFilePath", "jsonKeyFilePath"); config.setProperty("api.admanager.serviceAccountUser", "someUser@example.com"); OfflineCredentials credentials = new Builder().forApi(Api.AD_MANAGER).from(config).build(); assertEquals( "service account user should have been set from the config", "someUser@example.com", credentials.getServiceAccountUser()); }
com.google.api.ads.common.lib.auth.OfflineCredentials input = new FileInputStream(Utils.getProperty(Constants.HOME_PATH) + Utils.getProperty(Constants.CLIENT_SECRETS_DIRECTORY) + Constants.PATH_SEPARATOR + userPropertyFile); userProperty.load(input); credential = new OfflineCredentials.Builder() .forApi(OfflineCredentials.Api.DFA) .withHttpTransport( GoogleNetHttpTransport.newTrustedTransport()) .withClientSecrets(userProperty.getProperty("client_id"), userProperty.getProperty("client_secret")) .withRefreshToken(userProperty.getProperty("refresh_token")) .build().generateCredential();
/** * Specifies which {@link OAuthConfig} should this {@code OfflineCredentials} be * used for. Should be called first before any other builder methods. */ public ForApiBuilder forApi(OAuthConfig oAuthConfig) { defaultOptionals(oAuthConfig); return new ForApiBuilder(oAuthConfig, oAuth2Helper); }