@Override public com.google.api.ads.adwords.lib.utils.DetailedReportDownloadResponseException build( int httpStatus, String errorText) { return new DetailedReportDownloadResponseException(httpStatus, errorText); } }
@Override public ReportDownloadResponse downloadReport(String reportQuery, DownloadFormat format) throws ReportException, ReportDownloadResponseException { return adHocReportDownloadHelper.downloadReport( new AwqlReportRequest(reportQuery, format), new DetailedReportDownloadResponseException.Builder()); }
@Override public ReportDownloadResponse downloadReport(ReportDefinition reportDefinition) throws ReportException, ReportDownloadResponseException { return adHocReportDownloadHelper.downloadReport( new XmlReportDefinitionRequest(reportDefinition), new DetailedReportDownloadResponseException.Builder()); }
/** Tests building a report query with string report type. */ @Test public void testBuildWithStringReportType() { String expectedAwql = "SELECT CampaignId, CampaignName FROM CAMPAIGN_PERFORMANCE_REPORT"; ReportQueryInterface reportQuery = new ReportQuery.Builder() .fields("CampaignId", "CampaignName") .from("CAMPAIGN_PERFORMANCE_REPORT") .build(); assertEquals(expectedAwql, reportQuery.toString()); checkUtilitiesState(); }
@Test public void testGetRequestType() { AwqlReportRequest request = new AwqlReportRequest("SELECT foo, bar", DownloadFormat.CSV); assertEquals("Incorrect request type", RequestType.AWQL, request.getRequestType()); } }
/** Tests failing to build a report query due to {@code from()} not called. */ @Test public void testBuild_fails_fromNotCalled() { thrown.expect(IllegalStateException.class); thrown.expectMessage("use from()"); new ReportQuery.Builder().fields("Id").build(); }
/** Tests failing to build a report query due to {@code fields()} not called. */ @Test public void testBuild_fails_fieldsNotCalled() { thrown.expect(IllegalStateException.class); thrown.expectMessage("use fields()"); new ReportQuery.Builder().from(ReportDefinitionReportType.CAMPAIGN_PERFORMANCE_REPORT).build(); }
@Test public void testConstructor_nullQuery_fails() { thrown.expect(NullPointerException.class); thrown.expectMessage("query"); new AwqlReportRequest(null, DownloadFormat.CSV); }
/** Tests failing to build a report query using a copy constructor. */ @Test public void testBuildWithCopyConstructor_nullArg_fails() { thrown.expect(NullPointerException.class); thrown.expectMessage("query builder"); new ReportQuery.Builder(null).build(); }
@Override public ReportQuery.Builder from(String reportType) { return from(ReportDefinitionReportType.fromValue(reportType)); }
@Override public ReportWhereBuilder where(String field) { WhereBuilder whereBuilderDelegate = this.new WhereBuilder(field); whereBuilders.add(whereBuilderDelegate); return new ReportWhereBuilder(whereBuilderDelegate); }
@Before public void setUp() { MockitoAnnotations.initMocks(this); reportDownloader = new ReportDownloader(adHocDownloadHelper); }
/** Tests building a report query with enum date range. */ @Test public void testBuildWithEnumDateRange() { String expectedAwql = "SELECT CampaignId, CampaignName FROM CLICK_PERFORMANCE_REPORT " + "DURING THIS_WEEK_MON_TODAY"; ReportQueryInterface reportQuery = new ReportQuery.Builder() .fields("CampaignId", "CampaignName") .from(ReportDefinitionReportType.CLICK_PERFORMANCE_REPORT) .during(ReportDefinitionDateRangeType.THIS_WEEK_MON_TODAY) .build(); assertEquals(expectedAwql, reportQuery.toString()); checkUtilitiesState(); }
@Override public ReportDownloadResponse downloadReport(String reportQuery, DownloadFormat format) throws ReportException, ReportDownloadResponseException { return adHocReportDownloadHelper.downloadReport( new AwqlReportRequest(reportQuery, format), new DetailedReportDownloadResponseException.Builder()); }
@Override public ReportDownloadResponse downloadReport(ReportDefinition reportDefinition) throws ReportException, ReportDownloadResponseException { return adHocReportDownloadHelper.downloadReport( new XmlReportDefinitionRequest(reportDefinition), new DetailedReportDownloadResponseException.Builder()); }
@Test public void testConstructor_nullArgs_fails() { thrown.expect(NullPointerException.class); thrown.expectMessage("query"); new AwqlReportRequest(null, null); }
@Override public com.google.api.ads.adwords.lib.utils.DetailedReportDownloadResponseException build( int httpStatus, String errorText) { return new DetailedReportDownloadResponseException(httpStatus, errorText); } }
@Override public ReportQuery.Builder from(String reportType) { return from(ReportDefinitionReportType.fromValue(reportType)); }
/** Tests building a report query with {@link Iterable} fields. */ @Test public void testBuildWithIterableFields() { String expectedAwql = "SELECT CampaignId, CampaignName FROM AUDIENCE_PERFORMANCE_REPORT"; ReportQueryInterface reportQuery = new ReportQuery.Builder() .fields(Arrays.asList("CampaignId", "CampaignName")) .from(ReportDefinitionReportType.AUDIENCE_PERFORMANCE_REPORT) .build(); assertEquals(expectedAwql, reportQuery.toString()); checkUtilitiesState(); }
@Test public void testConstructor_nullFormat_fails() { thrown.expect(NullPointerException.class); thrown.expectMessage("download format"); new AwqlReportRequest("SELECT foo, bar", null); }