@@ -118,6 +118,136 @@ func TestValidLabelKeys(t *testing.T) {
118118 }
119119}
120120
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+
121251func TestAccCloudFunctionsFunction_basic (t * testing.T ) {
122252 t .Parallel ()
123253
0 commit comments