@@ -32,6 +32,12 @@ func testRoutineConversion(t *testing.T, conversion string, in interface{}, want
32
32
t .Fatalf ("failed input type conversion (bq.Routine): %v" , in )
33
33
}
34
34
got , err = bqToRoutineMetadata (input )
35
+ case "FromRoutineMetadata" :
36
+ input , ok := in .(* RoutineMetadata )
37
+ if ! ok {
38
+ t .Fatalf ("failed input type conversion (bq.RoutineMetadata): %v" , in )
39
+ }
40
+ got , err = input .toBQ ()
35
41
case "FromRoutineMetadataToUpdate" :
36
42
input , ok := in .(* RoutineMetadataToUpdate )
37
43
if ! ok {
@@ -53,9 +59,8 @@ func testRoutineConversion(t *testing.T, conversion string, in interface{}, want
53
59
default :
54
60
t .Fatalf ("invalid comparison: %s" , conversion )
55
61
}
56
-
57
62
if err != nil {
58
- t .Fatalf ("failed conversion function for %q" , conversion )
63
+ t .Fatalf ("failed conversion function for %q: %v " , conversion , err )
59
64
}
60
65
if diff := testutil .Diff (got , want ); diff != "" {
61
66
t .Fatalf ("%+v: -got, +want:\n %s" , in , diff )
@@ -72,9 +77,22 @@ func TestRoutineTypeConversions(t *testing.T) {
72
77
in interface {}
73
78
want interface {}
74
79
}{
75
- {"empty" , "ToRoutineMetadata" , & bq.Routine {}, & RoutineMetadata {}},
76
- {"basic" , "ToRoutineMetadata" ,
77
- & bq.Routine {
80
+ {
81
+ name : "empty" ,
82
+ conversion : "ToRoutineMetadata" ,
83
+ in : & bq.Routine {},
84
+ want : & RoutineMetadata {},
85
+ },
86
+ {
87
+ name : "empty" ,
88
+ conversion : "FromRoutineMetadata" ,
89
+ in : & RoutineMetadata {},
90
+ want : & bq.Routine {},
91
+ },
92
+ {
93
+ name : "basic" ,
94
+ conversion : "ToRoutineMetadata" ,
95
+ in : & bq.Routine {
78
96
CreationTime : aTimeMillis ,
79
97
LastModifiedTime : aTimeMillis ,
80
98
DefinitionBody : "body" ,
@@ -89,8 +107,9 @@ func TestRoutineTypeConversions(t *testing.T) {
89
107
{Name : "field" , Type : & bq.StandardSqlDataType {TypeKind : "FLOAT64" }},
90
108
},
91
109
},
110
+ DataGovernanceType : "DATA_MASKING" ,
92
111
},
93
- & RoutineMetadata {
112
+ want : & RoutineMetadata {
94
113
CreationTime : aTime ,
95
114
LastModifiedTime : aTime ,
96
115
Description : "desc" ,
@@ -105,55 +124,106 @@ func TestRoutineTypeConversions(t *testing.T) {
105
124
{Name : "field" , Type : & StandardSQLDataType {TypeKind : "FLOAT64" }},
106
125
},
107
126
},
108
- }},
109
- {"body_and_libs" , "FromRoutineMetadataToUpdate" ,
110
- & RoutineMetadataToUpdate {
111
- Body : "body" ,
112
- ImportedLibraries : []string {"foo" , "bar" },
113
- ReturnType : & StandardSQLDataType {TypeKind : "FOO" },
127
+ DataGovernanceType : "DATA_MASKING" ,
114
128
},
115
- & bq.Routine {
116
- DefinitionBody : "body" ,
117
- ImportedLibraries : []string {"foo" , "bar" },
118
- ReturnType : & bq.StandardSqlDataType {TypeKind : "FOO" },
119
- ForceSendFields : []string {"DefinitionBody" , "ImportedLibraries" , "ReturnType" },
120
- }},
121
- {"null_fields" , "FromRoutineMetadataToUpdate" ,
122
- & RoutineMetadataToUpdate {
129
+ },
130
+ {
131
+ name : "basic" ,
132
+ conversion : "FromRoutineMetadata" ,
133
+ in : & RoutineMetadata {
134
+ Description : "desc" ,
135
+ DeterminismLevel : Deterministic ,
136
+ Body : "body" ,
137
+ Type : "type" ,
138
+ Language : "lang" ,
139
+ ReturnType : & StandardSQLDataType {TypeKind : "INT64" },
140
+ ReturnTableType : & StandardSQLTableType {
141
+ Columns : []* StandardSQLField {
142
+ {Name : "field" , Type : & StandardSQLDataType {TypeKind : "FLOAT64" }},
143
+ },
144
+ },
145
+ DataGovernanceType : "DATA_MASKING" ,
146
+ },
147
+ want : & bq.Routine {
148
+ DefinitionBody : "body" ,
149
+ Description : "desc" ,
150
+ DeterminismLevel : "DETERMINISTIC" ,
151
+ RoutineType : "type" ,
152
+ Language : "lang" ,
153
+ ReturnType : & bq.StandardSqlDataType {TypeKind : "INT64" },
154
+ ReturnTableType : & bq.StandardSqlTableType {
155
+ Columns : []* bq.StandardSqlField {
156
+ {Name : "field" , Type : & bq.StandardSqlDataType {TypeKind : "FLOAT64" }},
157
+ },
158
+ },
159
+ DataGovernanceType : "DATA_MASKING" ,
160
+ },
161
+ },
162
+ {
163
+ name : "body_and_libs" ,
164
+ conversion : "FromRoutineMetadataToUpdate" ,
165
+ in : & RoutineMetadataToUpdate {
166
+ Body : "body" ,
167
+ ImportedLibraries : []string {"foo" , "bar" },
168
+ ReturnType : & StandardSQLDataType {TypeKind : "FOO" },
169
+ DataGovernanceType : "DATA_MASKING" ,
170
+ },
171
+ want : & bq.Routine {
172
+ DefinitionBody : "body" ,
173
+ ImportedLibraries : []string {"foo" , "bar" },
174
+ ReturnType : & bq.StandardSqlDataType {TypeKind : "FOO" },
175
+ DataGovernanceType : "DATA_MASKING" ,
176
+ ForceSendFields : []string {"DefinitionBody" , "ImportedLibraries" , "ReturnType" , "DataGovernanceType" },
177
+ },
178
+ },
179
+ {
180
+ name : "null_fields" ,
181
+ conversion : "FromRoutineMetadataToUpdate" ,
182
+ in : & RoutineMetadataToUpdate {
123
183
Type : "type" ,
124
184
Arguments : []* RoutineArgument {},
125
185
ImportedLibraries : []string {},
126
186
},
127
- & bq.Routine {
187
+ want : & bq.Routine {
128
188
RoutineType : "type" ,
129
189
ForceSendFields : []string {"RoutineType" },
130
190
NullFields : []string {"Arguments" , "ImportedLibraries" },
131
- }},
132
- {"empty" , "ToRoutineArgument" ,
133
- & bq.Argument {},
134
- & RoutineArgument {}},
135
- {"basic" , "ToRoutineArgument" ,
136
- & bq.Argument {
191
+ },
192
+ },
193
+ {
194
+ name : "empty" ,
195
+ conversion : "ToRoutineArgument" ,
196
+ in : & bq.Argument {},
197
+ want : & RoutineArgument {}},
198
+ {
199
+ name : "basic" ,
200
+ conversion : "ToRoutineArgument" ,
201
+ in : & bq.Argument {
137
202
Name : "foo" ,
138
203
ArgumentKind : "bar" ,
139
204
Mode : "baz" ,
140
205
},
141
- & RoutineArgument {
206
+ want : & RoutineArgument {
142
207
Name : "foo" ,
143
208
Kind : "bar" ,
144
209
Mode : "baz" ,
145
- }},
146
- {"empty" , "FromRoutineArgument" ,
147
- & RoutineArgument {},
148
- & bq.Argument {},
210
+ },
149
211
},
150
- {"basic" , "FromRoutineArgument" ,
151
- & RoutineArgument {
212
+ {
213
+ name : "empty" ,
214
+ conversion : "FromRoutineArgument" ,
215
+ in : & RoutineArgument {},
216
+ want : & bq.Argument {},
217
+ },
218
+ {
219
+ name : "basic" ,
220
+ conversion : "FromRoutineArgument" ,
221
+ in : & RoutineArgument {
152
222
Name : "foo" ,
153
223
Kind : "bar" ,
154
224
Mode : "baz" ,
155
225
},
156
- & bq.Argument {
226
+ want : & bq.Argument {
157
227
Name : "foo" ,
158
228
ArgumentKind : "bar" ,
159
229
Mode : "baz" ,
@@ -162,7 +232,6 @@ func TestRoutineTypeConversions(t *testing.T) {
162
232
163
233
for _ , test := range tests {
164
234
t .Run (fmt .Sprintf ("%s/%s" , test .conversion , test .name ), func (t * testing.T ) {
165
- t .Parallel ()
166
235
testRoutineConversion (t , test .conversion , test .in , test .want )
167
236
})
168
237
}
0 commit comments