/** * Returns a new instance of {@link ReportingConfiguration} based on the attributes * of this builder. */ public ReportingConfiguration build() { return new ReportingConfiguration(this); } }
private ReportingConfiguration getReportingConfiguration(Properties properties) { ReportingConfiguration reportingConfig = new ReportingConfiguration.Builder() .skipReportHeader(true) .skipColumnHeader(false) .skipReportSummary(true) .includeZeroImpressions(getIncludeZeroImpressions(properties)) .useRawEnumValues(getUseRawEnumValues(properties)) .build(); return reportingConfig; }
Integer reportDownloadTimeout = config.getInteger("api.adwords.reportDownloadTimeout", null); this.reportingConfiguration = new ReportingConfiguration.Builder() .skipReportHeader(isSkipReportHeader) .skipColumnHeader(isSkipColumnHeader) .skipReportSummary(isSkipReportSummary) .useRawEnumValues(isUseRawEnumValues) .reportDownloadTimeout(reportDownloadTimeout) .build();
@Test public void testBuilder_nullOptions() { ReportingConfiguration reportingConfiguration = new Builder() .skipReportHeader(null) .skipReportSummary(null) .includeZeroImpressions(null) .useRawEnumValues(null) .build(); assertNull(reportingConfiguration.isSkipReportHeader()); assertNull(reportingConfiguration.isSkipColumnHeader()); assertNull(reportingConfiguration.isSkipReportSummary()); assertNull(reportingConfiguration.isIncludeZeroImpressions()); assertNull(reportingConfiguration.isUseRawEnumValues()); }
@Test public void testValidate_supportedVersions_succeeds() { ReportingConfiguration config = new Builder() .skipReportHeader(true) .skipColumnHeader(true) .skipReportSummary(true) .includeZeroImpressions(true) .useRawEnumValues(true) // A timeout of 0 is acceptable. This means do not time out. .reportDownloadTimeout(0) .build(); config.validate("v201802"); assertTrue("Validation should succeed for v201802", true); config.validate("v201806"); assertTrue("Validation should succeed for v201806", true); config.validate("v201809"); assertTrue("Validation should succeed for v201809", true); }
@Test public void testValidate_negativeTimeout_fails() { ReportingConfiguration config = new Builder() .skipReportHeader(true) .skipColumnHeader(true) .reportDownloadTimeout(-1) .build(); thrown.expect(IllegalArgumentException.class); thrown.expectMessage("timeout"); config.validate(null); } }
@Test public void testBuilder_noOptions() { ReportingConfiguration reportingConfiguration = new Builder().build(); assertNull(reportingConfiguration.isSkipReportHeader()); assertNull(reportingConfiguration.isSkipColumnHeader()); assertNull(reportingConfiguration.isSkipReportSummary()); assertNull(reportingConfiguration.isIncludeZeroImpressions()); assertNull(reportingConfiguration.isUseRawEnumValues()); }
public AdWordsSessionTest(boolean isImmutable) { this.isImmutable = isImmutable; this.credential = new Credential(BearerToken.authorizationHeaderAccessMethod()); this.reportingConfiguration = new ReportingConfiguration.Builder().skipReportHeader(true).skipReportSummary(true).build(); this.allSettingsBuilder = new AdWordsSession.Builder() .withClientCustomerId("customer id") .withDeveloperToken("developer token") .withEndpoint("https://www.google.com") .enablePartialFailure() .enableValidateOnly() .withOAuth2Credential(credential) .withUserAgent("user agent") .withReportingConfiguration(reportingConfiguration); }
ReportingConfiguration reportingConfiguration = session.getReportingConfiguration(); if (reportingConfiguration != null) { reportingConfiguration.validate(version); if (reportingConfiguration.isSkipReportHeader() != null) { httpHeaders.set("skipReportHeader", Boolean.toString(reportingConfiguration.isSkipReportHeader())); if (reportingConfiguration.isSkipColumnHeader() != null) { httpHeaders.set("skipColumnHeader", Boolean.toString(reportingConfiguration.isSkipColumnHeader())); if (reportingConfiguration.isSkipReportSummary() != null) { httpHeaders.set("skipReportSummary", Boolean.toString(reportingConfiguration.isSkipReportSummary())); if (reportingConfiguration.isIncludeZeroImpressions() != null) { httpHeaders.set( "includeZeroImpressions", Boolean.toString(reportingConfiguration.isIncludeZeroImpressions())); if (reportingConfiguration.isUseRawEnumValues() != null) { httpHeaders.set( "useRawEnumValues", Boolean.toString(reportingConfiguration.isUseRawEnumValues()));
reportingConfig.isIncludeZeroImpressions()); assertNull( "skip column header is not null, but no reporting options in config", reportingConfig.isSkipColumnHeader()); assertNull( "skip report header is not null, but no reporting options in config", reportingConfig.isSkipReportHeader()); assertNull( "skip report summary is not null, but no reporting options in config", reportingConfig.isSkipReportSummary()); assertNull( "use raw enum values is not null, but no reporting options in config", reportingConfig.isUseRawEnumValues()); assertNull( "download timeout is not null, but no reporting options in config", reportingConfig.getReportDownloadTimeout());
/** * Constructor used by Guice. * * @param session Used to pull authentication data. * @param authorizationHeaderProvider Used to population the authentication data into a header. * @param userAgentCombiner Used to populate the User-Agent header. * @param adWordsLibConfiguration Used to obtain configuration options affecting report requests. * @param responseInterceptor Response interceptor to use for requests generated by this factory * helper. */ @Inject ReportRequestFactoryHelper(AdWordsSession session, AuthorizationHeaderProvider authorizationHeaderProvider, UserAgentCombiner userAgentCombiner, HttpTransport httpTransport, AdWordsLibConfiguration adWordsLibConfiguration, ReportResponseInterceptor responseInterceptor) { this.session = session; this.authorizationHeaderProvider = authorizationHeaderProvider; this.userAgentCombiner = userAgentCombiner; this.httpTransport = httpTransport; this.reportDownloadTimeout = (session.getReportingConfiguration() != null && session.getReportingConfiguration().getReportDownloadTimeout() != null) ? session.getReportingConfiguration().getReportDownloadTimeout() : adWordsLibConfiguration.getReportDownloadTimeout(); this.responseInterceptor = responseInterceptor; }
@Test public void testBuilder_allOptionsTrue() { ReportingConfiguration reportingConfiguration = new Builder() .skipReportHeader(true) .skipColumnHeader(true) .skipReportSummary(true) .includeZeroImpressions(true) .useRawEnumValues(true) .build(); assertTrue(reportingConfiguration.isSkipReportHeader()); assertTrue(reportingConfiguration.isSkipColumnHeader()); assertTrue(reportingConfiguration.isSkipReportSummary()); assertTrue(reportingConfiguration.isIncludeZeroImpressions()); assertTrue(reportingConfiguration.isUseRawEnumValues()); }
Integer reportDownloadTimeout = config.getInteger("api.adwords.reportDownloadTimeout", null); this.reportingConfiguration = new ReportingConfiguration.Builder() .skipReportHeader(isSkipReportHeader) .skipColumnHeader(isSkipColumnHeader) .skipReportSummary(isSkipReportSummary) .useRawEnumValues(isUseRawEnumValues) .reportDownloadTimeout(reportDownloadTimeout) .build();
@Test public void testBuilder_withReportingConfiguration() throws Exception { ReportingConfiguration reportingConfiguration = new ReportingConfiguration.Builder().skipReportHeader(true).skipReportSummary(true).build(); AdWordsSession adWordsSession = build( new AdWordsSession.Builder() .withUserAgent("FooBar") .withEndpoint("https://www.google.com") .withOAuth2Credential(credential) .withDeveloperToken("developerToken") .withReportingConfiguration(reportingConfiguration)); ReportingConfiguration sessionReportingConfig = adWordsSession.getReportingConfiguration(); assertNotNull( "reporting configuration should not be null when passed to the builder", sessionReportingConfig); }
ReportingConfiguration reportingConfiguration = session.getReportingConfiguration(); if (reportingConfiguration != null) { reportingConfiguration.validate(version); if (reportingConfiguration.isSkipReportHeader() != null) { httpHeaders.set("skipReportHeader", Boolean.toString(reportingConfiguration.isSkipReportHeader())); if (reportingConfiguration.isSkipColumnHeader() != null) { httpHeaders.set("skipColumnHeader", Boolean.toString(reportingConfiguration.isSkipColumnHeader())); if (reportingConfiguration.isSkipReportSummary() != null) { httpHeaders.set("skipReportSummary", Boolean.toString(reportingConfiguration.isSkipReportSummary())); if (reportingConfiguration.isIncludeZeroImpressions() != null) { httpHeaders.set( "includeZeroImpressions", Boolean.toString(reportingConfiguration.isIncludeZeroImpressions())); if (reportingConfiguration.isUseRawEnumValues() != null) { httpHeaders.set( "useRawEnumValues", Boolean.toString(reportingConfiguration.isUseRawEnumValues()));
"reporting configuration should not be null", session.getReportingConfiguration()); assertTrue(session.getReportingConfiguration().isSkipReportHeader()); assertTrue(session.getReportingConfiguration().isSkipColumnHeader()); assertFalse(session.getReportingConfiguration().isSkipReportSummary()); assertFalse(session.getReportingConfiguration().isUseRawEnumValues()); assertEquals( 9999999, session.getReportingConfiguration().getReportDownloadTimeout().intValue()); assertNull( "includeZeroImpressions is not settable from ads.properties, so should be null", session.getReportingConfiguration().isIncludeZeroImpressions());
/** * Constructor used by Guice. * * @param session Used to pull authentication data. * @param authorizationHeaderProvider Used to population the authentication data into a header. * @param userAgentCombiner Used to populate the User-Agent header. * @param adWordsLibConfiguration Used to obtain configuration options affecting report requests. * @param responseInterceptor Response interceptor to use for requests generated by this factory * helper. */ @Inject ReportRequestFactoryHelper(AdWordsSession session, AuthorizationHeaderProvider authorizationHeaderProvider, UserAgentCombiner userAgentCombiner, HttpTransport httpTransport, AdWordsLibConfiguration adWordsLibConfiguration, ReportResponseInterceptor responseInterceptor) { this.session = session; this.authorizationHeaderProvider = authorizationHeaderProvider; this.userAgentCombiner = userAgentCombiner; this.httpTransport = httpTransport; this.reportDownloadTimeout = (session.getReportingConfiguration() != null && session.getReportingConfiguration().getReportDownloadTimeout() != null) ? session.getReportingConfiguration().getReportDownloadTimeout() : adWordsLibConfiguration.getReportDownloadTimeout(); this.responseInterceptor = responseInterceptor; }
/** * Returns a new instance of {@link ReportingConfiguration} based on the attributes * of this builder. */ public ReportingConfiguration build() { return new ReportingConfiguration(this); } }
@Test public void testBuilder_mixedOptions_trueFalse() { ReportingConfiguration reportingConfiguration = new Builder() .skipReportHeader(true) .skipColumnHeader(true) .skipReportSummary(false) .includeZeroImpressions(false) .useRawEnumValues(true) .build(); assertTrue(reportingConfiguration.isSkipReportHeader()); assertTrue(reportingConfiguration.isSkipColumnHeader()); assertFalse(reportingConfiguration.isSkipReportSummary()); assertFalse(reportingConfiguration.isIncludeZeroImpressions()); assertTrue(reportingConfiguration.isUseRawEnumValues()); }
public void testBuilder_returnsCopies() throws Exception { Builder builder = new Builder() .skipReportHeader(true) .skipColumnHeader(false) .skipReportSummary(true) .includeZeroImpressions(false) .useRawEnumValues(true); ReportingConfiguration config1 = builder.build(); assertTrue(config1.isSkipReportHeader()); assertFalse(config1.isSkipColumnHeader()); assertTrue(config1.isSkipReportSummary()); assertFalse(config1.isIncludeZeroImpressions()); assertTrue(config1.isUseRawEnumValues()); "Build did not return a new instance on multiple invocations", config1, builder.build()); builder.skipReportHeader(false); ReportingConfiguration config2 = builder.build(); config1.isSkipReportHeader()); config2.isSkipReportHeader());