@@ -118,6 +118,136 @@ func TestValidLabelKeys(t *testing.T) {
118
118
}
119
119
}
120
120
121
+ func TestCompareSelfLinkOrResourceNameWithMultipleParts (t * testing.T ) {
122
+ cases := map [string ]struct {
123
+ Old , New string
124
+ ExpectDiffSuppress bool
125
+ }{
126
+ "projects to no projects doc" : {
127
+ Old : "projects/myproject/databases/default/documents/resource" ,
128
+ New : "resource" ,
129
+ ExpectDiffSuppress : true ,
130
+ },
131
+ "no projects to projects doc" : {
132
+ Old : "resource" ,
133
+ New : "projects/myproject/databases/default/documents/resource" ,
134
+ ExpectDiffSuppress : true ,
135
+ },
136
+ "projects to projects doc" : {
137
+ Old : "projects/myproject/databases/default/documents/resource" ,
138
+ New : "projects/myproject/databases/default/documents/resource" ,
139
+ ExpectDiffSuppress : true ,
140
+ },
141
+ "multi messages doc" : {
142
+ Old : "messages/{messageId}" ,
143
+ New : "projects/myproject/databases/(default)/documents/messages/{messageId}" ,
144
+ ExpectDiffSuppress : true ,
145
+ },
146
+ "multi messages 2 doc" : {
147
+ Old : "projects/myproject/databases/(default)/documents/messages/{messageId}" ,
148
+ New : "messages/{messageId}" ,
149
+ ExpectDiffSuppress : true ,
150
+ },
151
+ "projects to no projects topics" : {
152
+ Old : "projects/myproject/topics/resource" ,
153
+ New : "resource" ,
154
+ ExpectDiffSuppress : true ,
155
+ },
156
+ "no projects to projects topics" : {
157
+ Old : "resource" ,
158
+ New : "projects/myproject/topics/resource" ,
159
+ ExpectDiffSuppress : true ,
160
+ },
161
+ "projects to projects topics" : {
162
+ Old : "projects/myproject/topics/resource" ,
163
+ New : "projects/myproject/topics/resource" ,
164
+ ExpectDiffSuppress : true ,
165
+ },
166
+
167
+ "unmatched projects to no projects doc" : {
168
+ Old : "projects/myproject/databases/default/documents/resource" ,
169
+ New : "resourcex" ,
170
+ ExpectDiffSuppress : false ,
171
+ },
172
+ "unmatched no projects to projects doc" : {
173
+ Old : "resourcex" ,
174
+ New : "projects/myproject/databases/default/documents/resource" ,
175
+ ExpectDiffSuppress : false ,
176
+ },
177
+ "unmatched projects to projects doc" : {
178
+ Old : "projects/myproject/databases/default/documents/resource" ,
179
+ New : "projects/myproject/databases/default/documents/resourcex" ,
180
+ ExpectDiffSuppress : false ,
181
+ },
182
+ "unmatched projects to projects 2 doc" : {
183
+ Old : "projects/myprojectx/databases/default/documents/resource" ,
184
+ New : "projects/myproject/databases/default/documents/resource" ,
185
+ ExpectDiffSuppress : false ,
186
+ },
187
+ "unmatched projects to empty doc" : {
188
+ Old : "" ,
189
+ New : "projects/myproject/databases/default/documents/resource" ,
190
+ ExpectDiffSuppress : false ,
191
+ },
192
+ "unmatched empty to projects 2 doc" : {
193
+ Old : "projects/myprojectx/databases/default/documents/resource" ,
194
+ New : "" ,
195
+ ExpectDiffSuppress : false ,
196
+ },
197
+ "unmatched default to default2 doc" : {
198
+ Old : "projects/myproject/databases/default/documents/resource" ,
199
+ New : "projects/myproject/databases/default2/documents/resource" ,
200
+ ExpectDiffSuppress : false ,
201
+ },
202
+ "unmatched projects to no projects topics" : {
203
+ Old : "projects/myproject/topics/resource" ,
204
+ New : "resourcex" ,
205
+ ExpectDiffSuppress : false ,
206
+ },
207
+ "unmatched no projects to projects topics" : {
208
+ Old : "resourcex" ,
209
+ New : "projects/myproject/topics/resource" ,
210
+ ExpectDiffSuppress : false ,
211
+ },
212
+ "unmatched projects to projects topics" : {
213
+ Old : "projects/myproject/topics/resource" ,
214
+ New : "projects/myproject/topics/resourcex" ,
215
+ ExpectDiffSuppress : false ,
216
+ },
217
+ "unmatched projects to projects 2 topics" : {
218
+ Old : "projects/myprojectx/topics/resource" ,
219
+ New : "projects/myproject/topics/resource" ,
220
+ ExpectDiffSuppress : false ,
221
+ },
222
+ "unmatched projects to empty topics" : {
223
+ Old : "projects/myproject/topics/resource" ,
224
+ New : "" ,
225
+ ExpectDiffSuppress : false ,
226
+ },
227
+ "unmatched empty to projects topics" : {
228
+ Old : "" ,
229
+ New : "projects/myproject/topics/resource" ,
230
+ ExpectDiffSuppress : false ,
231
+ },
232
+ "unmatched resource to resource-partial" : {
233
+ Old : "resource" ,
234
+ New : "resource-partial" ,
235
+ ExpectDiffSuppress : false ,
236
+ },
237
+ "unmatched resource-partial to projects" : {
238
+ Old : "resource-partial" ,
239
+ New : "projects/myproject/topics/resource" ,
240
+ ExpectDiffSuppress : false ,
241
+ },
242
+ }
243
+
244
+ for tn , tc := range cases {
245
+ if compareSelfLinkOrResourceNameWithMultipleParts ("resource" , tc .Old , tc .New , nil ) != tc .ExpectDiffSuppress {
246
+ t .Fatalf ("bad: %s, '%s' => '%s' expect %t" , tn , tc .Old , tc .New , tc .ExpectDiffSuppress )
247
+ }
248
+ }
249
+ }
250
+
121
251
func TestAccCloudFunctionsFunction_basic (t * testing.T ) {
122
252
t .Parallel ()
123
253
0 commit comments