Skip to content

Commit 43a7f4d

Browse files
committed
BigQuery Sink Plugin - Automated test Scenarios
1 parent 5cafda8 commit 43a7f4d

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
@@ -396,6 +396,37 @@ public void enterBigQueryPropertyAsMacroArgumentoutputschema(String pluginProper
396396
}
397397
}
398398

399+
@Then("Enter BigQuery property reference name {string}")
400+
public void EnterBigQuerypropertyreferencename(String referenceName) throws IOException {
401+
CdfBigQueryPropertiesActions.enterBigQueryReferenceName(PluginPropertyUtils.pluginProp(referenceName));
402+
}
399403

404+
@Then("Verify the BigQuery validation error message for reference name {string}")
405+
public void VerifytheBigQueryvalidationerrormessageforreferencename (String property) {
406+
CdfStudioActions.clickValidateButton();
407+
String expectedErrorMessage;
408+
if (property.equalsIgnoreCase("gcsChunkSize")) {
409+
expectedErrorMessage = PluginPropertyUtils
410+
.errorProp(E2ETestConstants.ERROR_MSG_BQ_INCORRECT_CHUNKSIZE);
411+
} else if (property.equalsIgnoreCase("bucket")) {
412+
expectedErrorMessage = PluginPropertyUtils
413+
.errorProp(E2ETestConstants.ERROR_MSG_BQ_INCORRECT_TEMPORARY_BUCKET);
414+
} else if (property.equalsIgnoreCase("table")) {
415+
expectedErrorMessage = PluginPropertyUtils
416+
.errorProp(E2ETestConstants.ERROR_MSG_INCORRECT_TABLE_NAME);
417+
} else if (property.equalsIgnoreCase("referenceName")) {
418+
expectedErrorMessage = PluginPropertyUtils
419+
.errorProp(E2ETestConstants.ERROR_MSG_INCORRECT_REFERENCENAME);
420+
} else {
421+
expectedErrorMessage = PluginPropertyUtils.errorProp(E2ETestConstants.ERROR_MSG_INCORRECT_REFERENCENAME).
422+
replaceAll("referenceName", property.substring(0, 1).toUpperCase() + property.substring(1));
423+
}
424+
String actualErrorMessage = PluginPropertyUtils.findPropertyErrorElement("referenceName").getText();
425+
System.out.println(actualErrorMessage);
426+
Assert.assertEquals(expectedErrorMessage, actualErrorMessage);
427+
String actualColor = PluginPropertyUtils.getErrorColor(PluginPropertyUtils.findPropertyErrorElement("referenceName"));
428+
String expectedColor = ConstantsUtil.ERROR_MSG_COLOR;
429+
Assert.assertEquals(expectedColor, actualColor);
430+
}
400431

401432
}

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
@@ -22,5 +22,5 @@ public class E2ETestConstants {
2222
public static final String ERROR_MSG_INCORRECT_PARTITIONENDDATE= "errorMessageIncorrectPartitionEndDate";
2323
public static final String ERROR_MSG_INCORRECT_REFERENCENAME= "errorMessageInvalidReferenceName";
2424
public static final String ERROR_MSG_INCORRECT_FILTER= "errorMessageIncorrectRegexPathFilter";
25-
25+
public static final String JSON_STRING_VALUE ="jsonStringValue";
2626
}

src/e2e-test/resources/errorMessage.properties

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

src/e2e-test/resources/pluginParameters.properties

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,9 @@ bqFuturePartitionEndDate=2099-10-02
195195
bqTruncateTableTrue=True
196196
bqUpdateTableSchemaTrue=True
197197
clusterValue=transaction_date
198+
jsonStringValue=transaction_uid.field
199+
jobLabelKey=transaction_uid
200+
jobLabelValue=transaction_uid:redis
198201
TableKey=PersonID
199202
bqSourceTable=dummy
200203
bqCreateTableQueryFile=testdata/BigQuery/BigQueryCreateTableQuery.txt
@@ -209,6 +212,7 @@ bqSourceSchemaDatatype=[{"key":"transaction_info","value":"boolean"},{"key":"tra
209212
{"key":"difference","value":"array"},{"key":"Userdata","value":"record"}]
210213
bqPartitionField=Month_of_Joining
211214
bqPartitionFieldTime=transaction_date
215+
partitionFilter=Customer_Exists
212216
bqRangeStart=1
213217
bqRangeEnd=10
214218
bqRangeInterval=2
@@ -231,7 +235,7 @@ bqUpdateDedupeExpectedFile=testdata/BigQuery/BQUpdateDedupeFile
231235
bqInsertExpectedFile=testdata/BigQuery/BQInsertIntFile
232236
relationTableKeyValue=Name
233237
dedupeByOrder=ASC
234-
dedupeByValue=ID
238+
dedupeByValue=transaction_time
235239
dedupeByValueUpsert=Price
236240
rangeStartValue=2
237241
rangeEndValue=3
@@ -248,7 +252,7 @@ bqDifferentRecordFile=testdata/BigQuery/BQDifferentRecordNameFile
248252
bqDateExpectedFile=testdata/BigQuery/BQDateFile
249253
bqDateTimeExpectedFile=testdata/BigQuery/BQDateTimeFile
250254
bqTimeStampExpectedFile=testdata/BigQuery/BQTimeStampFile
251-
bqPartitionFieldDate=transaction_date
255+
bqPartitionFieldDate=transaction_date,transaction_time
252256
## BIGQUERY-PLUGIN-PROPERTIES-END
253257

254258
## PUBSUBSINK-PLUGIN-PROPERTIES-START
@@ -260,6 +264,7 @@ pubSubErrorThreshold=0
260264
pubSubStringValue=one
261265
pubSubNegativeValue=-100
262266
pubsubDelimiter=@
267+
JasonString=name.first
263268
## PUBSUBSINK-PLUGIN-PROPERTIES-END
264269

265270
## GCSDELETE-PLUGIN-PROPERTIES-START
@@ -348,7 +353,8 @@ bqExecuteDMLUpsert=MERGE `PROJECT_NAME.DATASET.TABLENAME` as T \
348353
UPDATE SET UID = 'UPDATED RECORD' \
349354
WHEN NOT MATCHED THEN \
350355
INSERT ROW
351-
bqExecuteCountDMLUpsertInsert=SELECT COUNT(*) FROM `PROJECT_NAME.DATASET.TABLENAME` WHERE Id=101 AND Value=5000 AND UID='INSERTED RECORD'
356+
bqExecuteCountDMLUpsertInsert=SELECT COUNT(*) FROM `PROJECT_NAME.\
357+
.TABLENAME` WHERE Id=101 AND Value=5000 AND UID='INSERTED RECORD'
352358
bqExecuteCountDMLUpsertUpdate=SELECT COUNT(*) FROM `PROJECT_NAME.DATASET.TABLENAME` WHERE Id=101 AND Value=5000 AND UID='UPDATED RECORD'
353359
bqExecuteInsertFile=testdata/BQExecute/BQExecuteInsertFile
354360
## BQEXECUTE-PLUGIN-PROPERTIES-END

0 commit comments

Comments
 (0)