Skip to content

Commit 4fc280d

Browse files
committed
BigQuery Sink Plugin - Automated test Scenarios
1 parent 53ee808 commit 4fc280d

File tree

7 files changed

+510
-5
lines changed

7 files changed

+510
-5
lines changed

src/e2e-test/features/bigquery/sink/BigQuerySinkError.feature

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,16 @@ Feature: BigQuery sink - Validate BigQuery sink plugin error scenarios
6262
Then Enter BigQuery sink property table name
6363
Then Enter BigQuery property temporary bucket name "bqInvalidTemporaryBucket"
6464
Then Verify the BigQuery validation error message for invalid property "bucket"
65+
66+
@BQ_SINK_TEST
67+
Scenario:Verify BigQuery Sink properties validation errors for incorrect value of reference name
68+
Given Open Datafusion Project to configure pipeline
69+
When Sink is BigQuery
70+
Then Open BigQuery sink properties
71+
Then Enter BigQuery property reference name "bqInvalidRefName"
72+
Then Enter BigQuery property projectId "projectId"
73+
Then Enter BigQuery property datasetProjectId "projectId"
74+
Then Override Service account details if set in environment variables
75+
Then Enter BigQuery property dataset "dataset"
76+
Then Enter BigQuery sink property table name
77+
Then Verify the BigQuery validation error message for reference name "referenceName"

src/e2e-test/features/bigquery/sink/BigQueryToBigQuerySink.feature

Lines changed: 446 additions & 0 deletions
Large diffs are not rendered by default.

src/e2e-test/java/io/cdap/plugin/bigquery/stepsdesign/BigQueryBase.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,37 @@ public void enterBigQueryPropertyAsMacroArgumentoutputschema(String pluginProper
385385
}
386386
}
387387

388+
@Then("Enter BigQuery property reference name {string}")
389+
public void EnterBigQuerypropertyreferencename(String referenceName) throws IOException {
390+
CdfBigQueryPropertiesActions.enterBigQueryReferenceName(PluginPropertyUtils.pluginProp(referenceName));
391+
}
388392

393+
@Then("Verify the BigQuery validation error message for reference name {string}")
394+
public void VerifytheBigQueryvalidationerrormessageforreferencename (String property) {
395+
CdfStudioActions.clickValidateButton();
396+
String expectedErrorMessage;
397+
if (property.equalsIgnoreCase("gcsChunkSize")) {
398+
expectedErrorMessage = PluginPropertyUtils
399+
.errorProp(E2ETestConstants.ERROR_MSG_BQ_INCORRECT_CHUNKSIZE);
400+
} else if (property.equalsIgnoreCase("bucket")) {
401+
expectedErrorMessage = PluginPropertyUtils
402+
.errorProp(E2ETestConstants.ERROR_MSG_BQ_INCORRECT_TEMPORARY_BUCKET);
403+
} else if (property.equalsIgnoreCase("table")) {
404+
expectedErrorMessage = PluginPropertyUtils
405+
.errorProp(E2ETestConstants.ERROR_MSG_INCORRECT_TABLE_NAME);
406+
} else if (property.equalsIgnoreCase("referenceName")) {
407+
expectedErrorMessage = PluginPropertyUtils
408+
.errorProp(E2ETestConstants.ERROR_MSG_INCORRECT_REFERENCENAME);
409+
} else {
410+
expectedErrorMessage = PluginPropertyUtils.errorProp(E2ETestConstants.ERROR_MSG_INCORRECT_REFERENCENAME).
411+
replaceAll("referenceName", property.substring(0, 1).toUpperCase() + property.substring(1));
412+
}
413+
String actualErrorMessage = PluginPropertyUtils.findPropertyErrorElement("referenceName").getText();
414+
System.out.println(actualErrorMessage);
415+
Assert.assertEquals(expectedErrorMessage, actualErrorMessage);
416+
String actualColor = PluginPropertyUtils.getErrorColor(PluginPropertyUtils.findPropertyErrorElement("referenceName"));
417+
String expectedColor = ConstantsUtil.ERROR_MSG_COLOR;
418+
Assert.assertEquals(expectedColor, actualColor);
419+
}
389420

390421
}

src/e2e-test/java/io/cdap/plugin/bigquery/stepsdesign/BigQuerySink.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,11 @@
2424
import io.cdap.plugin.utils.E2EHelper;
2525
import io.cucumber.java.en.Then;
2626
import io.cucumber.java.en.When;
27+
import org.apache.commons.lang3.time.DateUtils;
2728

2829
import java.io.IOException;
30+
import java.text.SimpleDateFormat;
31+
import java.util.Date;
2932
import java.util.UUID;
3033

3134
/**
@@ -54,8 +57,14 @@ public void toggleBigQuerySinkPropertyTruncateTableToTrue() {
5457
CdfBigQueryPropertiesActions.clickTruncatableSwitch();
5558
}
5659

60+
@Then("Toggle BigQuery sink property reuire partition filter to true")
61+
public void toggleBigQuerysinkpropertyreuirepartitionfiltertotrue() {
62+
CdfBigQueryPropertiesActions.toggleRequirePartitionFilter();
63+
}
64+
5765
@Then("Toggle BigQuery sink property updateTableSchema to true")
5866
public void toggleBigQuerySinkPropertyUpdateTableSchemaToTrue() {
67+
5968
CdfBigQueryPropertiesActions.clickUpdateTable();
6069
}
6170

src/e2e-test/java/io/cdap/plugin/utils/E2ETestConstants.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ public class E2ETestConstants {
2121
public static final String ERROR_MSG_INCORRECT_PARTITIONENDDATE= "errorMessageIncorrectPartitionEndDate";
2222
public static final String ERROR_MSG_INCORRECT_REFERENCENAME= "errorMessageInvalidReferenceName";
2323
public static final String ERROR_MSG_INCORRECT_FILTER= "errorMessageIncorrectRegexPathFilter";
24-
24+
public static final String JSON_STRING_VALUE ="jsonStringValue";
2525
}

src/e2e-test/resources/errorMessage.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@ errorMessageInvalidDestPath=Invalid bucket name in path 'abc@'. Bucket name shou
3434
errorMessageInvalidEncryptionKey=CryptoKeyName.parse: formattedString not in valid format: Parameter "abc@" must be
3535
errorMessageIncorrectPartitionStartDate=08-12-2024 is not in a valid format. Enter valid date in format: yyyy-MM-dd
3636
errorMessageIncorrectPartitionEndDate=09-12-2024 is not in a valid format. Enter valid date in format: yyyy-MM-dd
37-
errorMessageInvalidReferenceName=Invalid reference name '#$%^'. Supported characters are: letters, numbers, and '_', '-', '.', or '$'.
37+
errorMessageInvalidReferenceName=Invalid reference name 'invalidRef&^*&&*'. Supported characters are: letters, numbers, and '_', '-', '.', or '$'.
3838
errorLogsMessageInvalidFilter=Spark Program 'phase-1' failed.
3939

src/e2e-test/resources/pluginParameters.properties

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,9 @@ bqFuturePartitionEndDate=2099-10-02
179179
bqTruncateTableTrue=True
180180
bqUpdateTableSchemaTrue=True
181181
clusterValue=transaction_date
182+
jsonStringValue=transaction_uid.field
183+
jobLabelKey=transaction_uid
184+
jobLabelValue=transaction_uid:redis
182185
TableKey=PersonID
183186
bqSourceTable=dummy
184187
bqCreateTableQueryFile=testdata/BigQuery/BigQueryCreateTableQuery.txt
@@ -193,6 +196,7 @@ bqSourceSchemaDatatype=[{"key":"transaction_info","value":"boolean"},{"key":"tra
193196
{"key":"difference","value":"array"},{"key":"Userdata","value":"record"}]
194197
bqPartitionField=Month_of_Joining
195198
bqPartitionFieldTime=transaction_date
199+
partitionFilter=Customer_Exists
196200
bqRangeStart=1
197201
bqRangeEnd=10
198202
bqRangeInterval=2
@@ -214,7 +218,7 @@ bqUpdateDedupeExpectedFile=testdata/BigQuery/BQUpdateDedupeFile
214218
bqInsertExpectedFile=testdata/BigQuery/BQInsertIntFile
215219
relationTableKeyValue=Name
216220
dedupeByOrder=ASC
217-
dedupeByValue=ID
221+
dedupeByValue=transaction_time
218222
dedupeByValueUpsert=Price
219223
rangeStartValue=2
220224
rangeEndValue=3
@@ -231,7 +235,7 @@ bqDifferentRecordFile=testdata/BigQuery/BQDifferentRecordNameFile
231235
bqDateExpectedFile=testdata/BigQuery/BQDateFile
232236
bqDateTimeExpectedFile=testdata/BigQuery/BQDateTimeFile
233237
bqTimeStampExpectedFile=testdata/BigQuery/BQTimeStampFile
234-
bqPartitionFieldDate=transaction_date
238+
bqPartitionFieldDate=transaction_date,transaction_time
235239
## BIGQUERY-PLUGIN-PROPERTIES-END
236240

237241
## PUBSUBSINK-PLUGIN-PROPERTIES-START
@@ -243,6 +247,7 @@ pubSubErrorThreshold=0
243247
pubSubStringValue=one
244248
pubSubNegativeValue=-100
245249
pubsubDelimiter=@
250+
JasonString=name.first
246251
## PUBSUBSINK-PLUGIN-PROPERTIES-END
247252

248253
## GCSDELETE-PLUGIN-PROPERTIES-START
@@ -331,7 +336,8 @@ bqExecuteDMLUpsert=MERGE `PROJECT_NAME.DATASET.TABLENAME` as T \
331336
UPDATE SET UID = 'UPDATED RECORD' \
332337
WHEN NOT MATCHED THEN \
333338
INSERT ROW
334-
bqExecuteCountDMLUpsertInsert=SELECT COUNT(*) FROM `PROJECT_NAME.DATASET.TABLENAME` WHERE Id=101 AND Value=5000 AND UID='INSERTED RECORD'
339+
bqExecuteCountDMLUpsertInsert=SELECT COUNT(*) FROM `PROJECT_NAME.\
340+
.TABLENAME` WHERE Id=101 AND Value=5000 AND UID='INSERTED RECORD'
335341
bqExecuteCountDMLUpsertUpdate=SELECT COUNT(*) FROM `PROJECT_NAME.DATASET.TABLENAME` WHERE Id=101 AND Value=5000 AND UID='UPDATED RECORD'
336342
bqExecuteInsertFile=testdata/BQExecute/BQExecuteInsertFile
337343
## BQEXECUTE-PLUGIN-PROPERTIES-END

0 commit comments

Comments
 (0)