-
Notifications
You must be signed in to change notification settings - Fork 86
Expand file tree
/
Copy pathBigQuerySink.java
More file actions
131 lines (110 loc) · 5.36 KB
/
BigQuerySink.java
File metadata and controls
131 lines (110 loc) · 5.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/*
* Copyright © 2021 Cask Data, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package io.cdap.plugin.bigquery.stepsdesign;
import io.cdap.e2e.pages.actions.CdfBigQueryPropertiesActions;
import io.cdap.e2e.pages.actions.CdfStudioActions;
import io.cdap.e2e.pages.locators.CdfStudioLocators;
import io.cdap.e2e.utils.ElementHelper;
import io.cdap.e2e.utils.PluginPropertyUtils;
import io.cdap.plugin.common.stepsdesign.TestSetupHooks;
import io.cdap.plugin.utils.E2EHelper;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
import org.apache.commons.lang3.time.DateUtils;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
/**
* BigQuery Sink related stepDesigns.
*/
public class BigQuerySink implements E2EHelper {
@When("Sink is BigQuery")
public void sinkIsBigQuery() {
CdfStudioActions.expandPluginGroupIfNotAlreadyExpanded("Sink");
selectSinkPlugin("BigQueryTable");
}
@Then("Open BigQuery sink properties")
public void openBigQuerySinkProperties() {
openSinkPluginProperties("BigQuery");
}
@Then("Enter BigQuery sink property table name")
public void enterBigQuerySinkPropertyTableName() {
CdfBigQueryPropertiesActions.enterBigQueryTable(TestSetupHooks.bqTargetTable);
}
@Then("Toggle BigQuery sink property truncateTable to true")
public void toggleBigQuerySinkPropertyTruncateTableToTrue() {
CdfBigQueryPropertiesActions.clickTruncatableSwitch();
}
@Then("Toggle BigQuery sink property reuire partition filter to true")
public void toggleBigQuerysinkpropertyreuirepartitionfiltertotrue() {
CdfBigQueryPropertiesActions.toggleRequirePartitionFilter();
}
@Then("Toggle BigQuery sink property updateTableSchema to true")
public void toggleBigQuerySinkPropertyUpdateTableSchemaToTrue() {
CdfBigQueryPropertiesActions.clickUpdateTable();
}
@Then("Enter the BigQuery sink mandatory properties")
public void enterTheBigQuerySinkMandatoryProperties() throws IOException {
CdfBigQueryPropertiesActions.enterProjectId(PluginPropertyUtils.pluginProp("projectId"));
CdfBigQueryPropertiesActions.enterDatasetProjectId(PluginPropertyUtils.pluginProp("projectId"));
CdfBigQueryPropertiesActions.enterBigQueryReferenceName("BQ_Ref_" + UUID.randomUUID());
CdfBigQueryPropertiesActions.enterBigQueryDataset(PluginPropertyUtils.pluginProp("dataset"));
CdfBigQueryPropertiesActions.enterBigQueryTable(TestSetupHooks.bqTargetTable);
CdfBigQueryPropertiesActions.clickUpdateTable();
CdfBigQueryPropertiesActions.clickTruncatableSwitch();
}
@Then("Click on preview data for BigQuery sink")
public void clickOnPreviewDataForBigQuerySink() {
openSinkPluginPreviewData("BigQuery");
}
@Then("Enter BigQuery sink property {string} as macro argument {string}")
public void enterBigQueryPropertyAsMacroArgument(String pluginProperty, String macroArgument) {
enterPropertyAsMacroArgument(pluginProperty, macroArgument);
}
@Then("Enter runtime argument value for BigQuery sink table name key {string}")
public void enterRuntimeArgumentValueForBigQuerySinkTableNameKey(String runtimeArgumentKey) {
ElementHelper.sendKeys(CdfStudioLocators.runtimeArgsValue(runtimeArgumentKey), TestSetupHooks.bqTargetTable);
}
@Then("Select BigQuery sink property partitioning type as {string}")
public void selectBigQuerySinkPropertyPartitioningTypeAs(String partitioningType) {
CdfBigQueryPropertiesActions.selectPartitioningType(partitioningType);
}
@Then("Enter BigQuery sink property partition field {string}")
public void enterBigQuerySinkPropertyPartitionField(String partitionField) {
CdfBigQueryPropertiesActions.enterPartitionField(PluginPropertyUtils.pluginProp(partitionField));
}
@Then("Enter BigQuery sink property range start {string}")
public void enterBigQuerySinkPropertyRangeStart(String rangeStart) {
CdfBigQueryPropertiesActions.enterRangeStart(PluginPropertyUtils.pluginProp(rangeStart));
}
@Then("Enter BigQuery sink property range end {string}")
public void enterBigQuerySinkPropertyRangeEnd(String rangeEnd) {
CdfBigQueryPropertiesActions.enterRangeEnd(PluginPropertyUtils.pluginProp(rangeEnd));
}
@Then("Enter BigQuery sink property range interval {string}")
public void enterBigQuerySinkPropertyRangeInterval(String rangeInterval) {
CdfBigQueryPropertiesActions.enterRangeInterval(PluginPropertyUtils.pluginProp(rangeInterval));
}
@Then("Toggle BigQuery sink property require partition filter to true")
public void toggleBigQuerySinkPropertyRequirePartitionFilterToTrue() {
CdfBigQueryPropertiesActions.toggleRequirePartitionFilter();
}
@Then("Enter BigQuery sink property GCS upload request chunk size {string}")
public void enterBigQuerySinkPropertyGCSUploadRequestChunkSize(String chunkSize) {
CdfBigQueryPropertiesActions.enterChunkSize(PluginPropertyUtils.pluginProp(chunkSize));
}
}