/** Tests building a report query. */ @Test public void testBuild() { String expectedAwql = "SELECT CampaignId, CampaignName FROM CAMPAIGN_PERFORMANCE_REPORT WHERE " + "CampaignStatus = \"ENABLED\" DURING 20170101,20170131"; ReportQueryInterface reportQuery = new ReportQuery.Builder() .fields("CampaignId", "CampaignName") .from(ReportDefinitionReportType.CAMPAIGN_PERFORMANCE_REPORT) .where("CampaignStatus").equalTo("ENABLED") .during(new LocalDate(2017, 1, 1), new LocalDate(2017, 1, 31)) .build(); assertEquals(expectedAwql, reportQuery.toString()); checkUtilitiesState(); }
/** Tests building a report query using a copy constructor. */ @Test public void testBuildWithCopyConstructor() { ReportQueryInterface.BuilderInterface oldBuilder = new ReportQuery.Builder() .fields("CampaignId", "CampaignName") .from(ReportDefinitionReportType.CAMPAIGN_PERFORMANCE_REPORT) .where("CampaignStatus").notEqualTo("ENABLED") .during(new LocalDate(2017, 1, 1), new LocalDate(2017, 1, 31)); ReportQueryInterface expectedReportQuery = oldBuilder.build(); ReportQueryInterface newReportQuery = new ReportQuery.Builder(oldBuilder).build(); assertEquals(expectedReportQuery, newReportQuery); checkUtilitiesState(); }
/** Tests building a report query with a string WHERE value. */ @Test public void testBuildStringwhereValue() { String expectedAwql = "SELECT CampaignId, CampaignName FROM ADGROUP_PERFORMANCE_REPORT WHERE " + "CampaignName CONTAINS_IGNORE_CASE \"google\""; ReportQueryInterface reportQuery = new ReportQuery.Builder() .fields("CampaignId", "CampaignName") .from(ReportDefinitionReportType.ADGROUP_PERFORMANCE_REPORT) .where("CampaignName").containsIgnoreCase("google") .build(); assertEquals(expectedAwql, reportQuery.toString()); checkUtilitiesState(); }
.fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Id").notIn(44444L, 77777L) .build(); .fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("CampaignId").notIn(1111, 2222) .build(); .fields("CampaignId", "CampaignName") .from(ReportDefinitionReportType.CAMPAIGN_PERFORMANCE_REPORT) .where("AveragePageviews").notIn(2.5, 3.5) .build(); .fields("CampaignId", "CampaignName") .from(ReportDefinitionReportType.CAMPAIGN_PERFORMANCE_REPORT) .where("IsBudgetExplicitlyShared").notIn(false, true) .build();
.fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("CampaignName").in("asia", "europe") .build(); .fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("CampaignId").in(1111, 2222) .build(); .fields("CampaignId", "CampaignName") .from(ReportDefinitionReportType.CAMPAIGN_PERFORMANCE_REPORT) .where("AveragePageviews").in(2.5, 3.5) .build(); .fields("CampaignId", "CampaignName") .from(ReportDefinitionReportType.CAMPAIGN_PERFORMANCE_REPORT) .where("IsBudgetExplicitlyShared").in(false, true) .build();
.fields("CampaignId", "CampaignName") .from(ReportDefinitionReportType.ADGROUP_PERFORMANCE_REPORT) .where("Clicks").greaterThanOrEqualTo(500) .where("CampaignName").containsIgnoreCase("promotion") .where("AdGroupName").startsWith("adwords_") .where("BiddingStrategyName").startsWithIgnoreCase("europe") .where("CustomerDescriptiveName").contains("goog") .where("CustomerDescriptiveName").doesNotContain("asia") .where("AccountDescriptiveName").doesNotContainIgnoreCase("group 3") .where("CampaignStatus").notEqualTo("REMOVED") .where("AdGroupStatus").notIn("REMOVED", "PAUSED") .where("AdNetworkType1").containsAny("SEARCH", "DISPLAY") .where("AdNetworkType2").containsNone("YOUTUBE_SEARCH", "UNKNOWN") .build();
.fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Clicks").greaterThan(200) .build(); .fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Clicks").greaterThan(200L) .build(); .fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Conversions").greaterThan(200.550000) .build();
.fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Id").containsNone(44444L, 77777L) .build(); .fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("CampaignId").containsNone(1111, 2222) .build(); .fields("CampaignId", "CampaignName") .from(ReportDefinitionReportType.CAMPAIGN_PERFORMANCE_REPORT) .where("AveragePageviews").containsNone(2.5, 3.5) .build();
.fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Id").containsAll(44444L, 77777L) .build(); .fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("CampaignId").containsAll(1111, 2222) .build(); .fields("CampaignId", "CampaignName") .from(ReportDefinitionReportType.CAMPAIGN_PERFORMANCE_REPORT) .where("AveragePageviews").containsAll(2.5, 3.5) .build();
.fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Id").containsAny(44444L, 77777L) .build(); .fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("CampaignId").containsAny(1111, 2222) .build(); .fields("CampaignId", "CampaignName") .from(ReportDefinitionReportType.CAMPAIGN_PERFORMANCE_REPORT) .where("AveragePageviews").containsAny(2.5, 3.5) .build();
.fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Clicks").notEqualTo(200) .build(); .fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Clicks").notEqualTo(200L) .build(); .fields("CampaignId", "CampaignName") .from(ReportDefinitionReportType.CAMPAIGN_PERFORMANCE_REPORT) .where("IsBudgetExplicitlyShared").notEqualTo(true) .build();
/** Tests the LESS_THAN_OR_EQUAL_TO WHERE clause. */ @Test public void testLessThanOrEqualToWhereClause() { String expectedAwql = "SELECT Id, CampaignName FROM CRITERIA_PERFORMANCE_REPORT WHERE Clicks <= 200"; ReportQueryInterface reportQuery = new ReportQuery.Builder() .fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Clicks").lessThanOrEqualTo(200) .build(); assertEquals(expectedAwql, reportQuery.toString()); checkUtilitiesState(); reportQuery = new ReportQuery.Builder() .fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Clicks").lessThanOrEqualTo(200L) .build(); assertEquals(expectedAwql, reportQuery.toString()); expectedAwql = "SELECT Id, CampaignName FROM CRITERIA_PERFORMANCE_REPORT WHERE Conversions <= 200.550000"; reportQuery = new ReportQuery.Builder() .fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Conversions").lessThanOrEqualTo(200.550000) .build(); assertEquals(expectedAwql, reportQuery.toString()); }
.fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Clicks").equalTo(200) .build(); .fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Clicks").equalTo(200L) .build(); .fields("CampaignId", "CampaignName") .from(ReportDefinitionReportType.CAMPAIGN_PERFORMANCE_REPORT) .where("IsBudgetExplicitlyShared").equalTo(true) .build();
.fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Clicks").lessThan(200) .build(); .fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Clicks").lessThan(200L) .build(); .fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Conversions").lessThan(200.550000) .build();
.fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Clicks").greaterThanOrEqualTo(200) .build(); .fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Clicks").greaterThanOrEqualTo(200L) .build(); .fields("Id", "CampaignName") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Conversions").greaterThanOrEqualTo(200.550000) .build();
/** Tests building a report query with multiple string values of the WHERE clause. */ @Test public void testBuildMultipleStringwhereValues() { String expectedAwql = "SELECT CampaignId, CampaignName FROM AD_PERFORMANCE_REPORT WHERE " + "CampaignName CONTAINS_ALL [\"white\", \"black\"]"; ReportQueryInterface reportQuery = new ReportQuery.Builder() .fields("CampaignId", "CampaignName") .from(ReportDefinitionReportType.AD_PERFORMANCE_REPORT) .where("CampaignName").containsAll("white", "black") .build(); assertEquals(expectedAwql, reportQuery.toString()); checkUtilitiesState(); }
/** Tests building a report query with a numeric WHERE value. */ @Test public void testBuildLongwhereValue() { String expectedAwql = "SELECT CampaignId, CampaignName FROM ADGROUP_PERFORMANCE_REPORT WHERE " + "AverageCpm >= 5"; ReportQueryInterface reportQuery = new ReportQuery.Builder() .fields("CampaignId", "CampaignName") .from(ReportDefinitionReportType.ADGROUP_PERFORMANCE_REPORT) .where("AverageCpm").greaterThanOrEqualTo(5) .build(); assertEquals(expectedAwql, reportQuery.toString()); checkUtilitiesState(); }
/** Tests building a report query with multiple long values of the WHERE clause. */ @Test public void testBuildMultipleLongwhereValues() { String expectedAwql = "SELECT CampaignId, CampaignName FROM AD_PERFORMANCE_REPORT WHERE " + "CampaignId IN [1234, 5678]"; ReportQueryInterface reportQuery = new ReportQuery.Builder() .fields("CampaignId", "CampaignName") .from(ReportDefinitionReportType.AD_PERFORMANCE_REPORT) .where("CampaignId").in(1234L, 5678L) .build(); assertEquals(expectedAwql, reportQuery.toString()); checkUtilitiesState(); }