@@ -172,3 +172,207 @@ func TestCompareResource_Lambda_CodeSigningConfig(t *testing.T) {
172
172
),
173
173
)
174
174
}
175
+
176
+ func TestCompareResource_Lambda_Function (t * testing.T ) {
177
+ assert := assert .New (t )
178
+ require := require .New (t )
179
+
180
+ g := testutil .NewModelForService (t , "lambda" )
181
+
182
+ crd := testutil .GetCRDByName (t , g , "Function" )
183
+ require .NotNil (crd )
184
+
185
+ expected := `
186
+ if ackcompare.HasNilDifference(a.ko.Spec.Code, b.ko.Spec.Code) {
187
+ delta.Add("Spec.Code", a.ko.Spec.Code, b.ko.Spec.Code)
188
+ } else if a.ko.Spec.Code != nil && b.ko.Spec.Code != nil {
189
+ if ackcompare.HasNilDifference(a.ko.Spec.Code.ImageURI, b.ko.Spec.Code.ImageURI) {
190
+ delta.Add("Spec.Code.ImageURI", a.ko.Spec.Code.ImageURI, b.ko.Spec.Code.ImageURI)
191
+ } else if a.ko.Spec.Code.ImageURI != nil && b.ko.Spec.Code.ImageURI != nil {
192
+ if *a.ko.Spec.Code.ImageURI != *b.ko.Spec.Code.ImageURI {
193
+ delta.Add("Spec.Code.ImageURI", a.ko.Spec.Code.ImageURI, b.ko.Spec.Code.ImageURI)
194
+ }
195
+ }
196
+ if ackcompare.HasNilDifference(a.ko.Spec.Code.S3Bucket, b.ko.Spec.Code.S3Bucket) {
197
+ delta.Add("Spec.Code.S3Bucket", a.ko.Spec.Code.S3Bucket, b.ko.Spec.Code.S3Bucket)
198
+ } else if a.ko.Spec.Code.S3Bucket != nil && b.ko.Spec.Code.S3Bucket != nil {
199
+ if *a.ko.Spec.Code.S3Bucket != *b.ko.Spec.Code.S3Bucket {
200
+ delta.Add("Spec.Code.S3Bucket", a.ko.Spec.Code.S3Bucket, b.ko.Spec.Code.S3Bucket)
201
+ }
202
+ }
203
+ if ackcompare.HasNilDifference(a.ko.Spec.Code.S3Key, b.ko.Spec.Code.S3Key) {
204
+ delta.Add("Spec.Code.S3Key", a.ko.Spec.Code.S3Key, b.ko.Spec.Code.S3Key)
205
+ } else if a.ko.Spec.Code.S3Key != nil && b.ko.Spec.Code.S3Key != nil {
206
+ if *a.ko.Spec.Code.S3Key != *b.ko.Spec.Code.S3Key {
207
+ delta.Add("Spec.Code.S3Key", a.ko.Spec.Code.S3Key, b.ko.Spec.Code.S3Key)
208
+ }
209
+ }
210
+ if ackcompare.HasNilDifference(a.ko.Spec.Code.S3ObjectVersion, b.ko.Spec.Code.S3ObjectVersion) {
211
+ delta.Add("Spec.Code.S3ObjectVersion", a.ko.Spec.Code.S3ObjectVersion, b.ko.Spec.Code.S3ObjectVersion)
212
+ } else if a.ko.Spec.Code.S3ObjectVersion != nil && b.ko.Spec.Code.S3ObjectVersion != nil {
213
+ if *a.ko.Spec.Code.S3ObjectVersion != *b.ko.Spec.Code.S3ObjectVersion {
214
+ delta.Add("Spec.Code.S3ObjectVersion", a.ko.Spec.Code.S3ObjectVersion, b.ko.Spec.Code.S3ObjectVersion)
215
+ }
216
+ }
217
+ if !bytes.Equal(a.ko.Spec.Code.ZipFile, b.ko.Spec.Code.ZipFile) {
218
+ delta.Add("Spec.Code.ZipFile", a.ko.Spec.Code.ZipFile, b.ko.Spec.Code.ZipFile)
219
+ }
220
+ }
221
+ if ackcompare.HasNilDifference(a.ko.Spec.CodeSigningConfigARN, b.ko.Spec.CodeSigningConfigARN) {
222
+ delta.Add("Spec.CodeSigningConfigARN", a.ko.Spec.CodeSigningConfigARN, b.ko.Spec.CodeSigningConfigARN)
223
+ } else if a.ko.Spec.CodeSigningConfigARN != nil && b.ko.Spec.CodeSigningConfigARN != nil {
224
+ if *a.ko.Spec.CodeSigningConfigARN != *b.ko.Spec.CodeSigningConfigARN {
225
+ delta.Add("Spec.CodeSigningConfigARN", a.ko.Spec.CodeSigningConfigARN, b.ko.Spec.CodeSigningConfigARN)
226
+ }
227
+ }
228
+ if ackcompare.HasNilDifference(a.ko.Spec.DeadLetterConfig, b.ko.Spec.DeadLetterConfig) {
229
+ delta.Add("Spec.DeadLetterConfig", a.ko.Spec.DeadLetterConfig, b.ko.Spec.DeadLetterConfig)
230
+ } else if a.ko.Spec.DeadLetterConfig != nil && b.ko.Spec.DeadLetterConfig != nil {
231
+ if ackcompare.HasNilDifference(a.ko.Spec.DeadLetterConfig.TargetARN, b.ko.Spec.DeadLetterConfig.TargetARN) {
232
+ delta.Add("Spec.DeadLetterConfig.TargetARN", a.ko.Spec.DeadLetterConfig.TargetARN, b.ko.Spec.DeadLetterConfig.TargetARN)
233
+ } else if a.ko.Spec.DeadLetterConfig.TargetARN != nil && b.ko.Spec.DeadLetterConfig.TargetARN != nil {
234
+ if *a.ko.Spec.DeadLetterConfig.TargetARN != *b.ko.Spec.DeadLetterConfig.TargetARN {
235
+ delta.Add("Spec.DeadLetterConfig.TargetARN", a.ko.Spec.DeadLetterConfig.TargetARN, b.ko.Spec.DeadLetterConfig.TargetARN)
236
+ }
237
+ }
238
+ }
239
+ if ackcompare.HasNilDifference(a.ko.Spec.Description, b.ko.Spec.Description) {
240
+ delta.Add("Spec.Description", a.ko.Spec.Description, b.ko.Spec.Description)
241
+ } else if a.ko.Spec.Description != nil && b.ko.Spec.Description != nil {
242
+ if *a.ko.Spec.Description != *b.ko.Spec.Description {
243
+ delta.Add("Spec.Description", a.ko.Spec.Description, b.ko.Spec.Description)
244
+ }
245
+ }
246
+ if ackcompare.HasNilDifference(a.ko.Spec.Environment, b.ko.Spec.Environment) {
247
+ delta.Add("Spec.Environment", a.ko.Spec.Environment, b.ko.Spec.Environment)
248
+ } else if a.ko.Spec.Environment != nil && b.ko.Spec.Environment != nil {
249
+ if ackcompare.HasNilDifference(a.ko.Spec.Environment.Variables, b.ko.Spec.Environment.Variables) {
250
+ delta.Add("Spec.Environment.Variables", a.ko.Spec.Environment.Variables, b.ko.Spec.Environment.Variables)
251
+ } else if a.ko.Spec.Environment.Variables != nil && b.ko.Spec.Environment.Variables != nil {
252
+ if !ackcompare.MapStringStringPEqual(a.ko.Spec.Environment.Variables, b.ko.Spec.Environment.Variables) {
253
+ delta.Add("Spec.Environment.Variables", a.ko.Spec.Environment.Variables, b.ko.Spec.Environment.Variables)
254
+ }
255
+ }
256
+ }
257
+ if !reflect.DeepEqual(a.ko.Spec.FileSystemConfigs, b.ko.Spec.FileSystemConfigs) {
258
+ delta.Add("Spec.FileSystemConfigs", a.ko.Spec.FileSystemConfigs, b.ko.Spec.FileSystemConfigs)
259
+ }
260
+ if ackcompare.HasNilDifference(a.ko.Spec.FunctionName, b.ko.Spec.FunctionName) {
261
+ delta.Add("Spec.FunctionName", a.ko.Spec.FunctionName, b.ko.Spec.FunctionName)
262
+ } else if a.ko.Spec.FunctionName != nil && b.ko.Spec.FunctionName != nil {
263
+ if *a.ko.Spec.FunctionName != *b.ko.Spec.FunctionName {
264
+ delta.Add("Spec.FunctionName", a.ko.Spec.FunctionName, b.ko.Spec.FunctionName)
265
+ }
266
+ }
267
+ if ackcompare.HasNilDifference(a.ko.Spec.Handler, b.ko.Spec.Handler) {
268
+ delta.Add("Spec.Handler", a.ko.Spec.Handler, b.ko.Spec.Handler)
269
+ } else if a.ko.Spec.Handler != nil && b.ko.Spec.Handler != nil {
270
+ if *a.ko.Spec.Handler != *b.ko.Spec.Handler {
271
+ delta.Add("Spec.Handler", a.ko.Spec.Handler, b.ko.Spec.Handler)
272
+ }
273
+ }
274
+ if ackcompare.HasNilDifference(a.ko.Spec.ImageConfig, b.ko.Spec.ImageConfig) {
275
+ delta.Add("Spec.ImageConfig", a.ko.Spec.ImageConfig, b.ko.Spec.ImageConfig)
276
+ } else if a.ko.Spec.ImageConfig != nil && b.ko.Spec.ImageConfig != nil {
277
+ if !ackcompare.SliceStringPEqual(a.ko.Spec.ImageConfig.Command, b.ko.Spec.ImageConfig.Command) {
278
+ delta.Add("Spec.ImageConfig.Command", a.ko.Spec.ImageConfig.Command, b.ko.Spec.ImageConfig.Command)
279
+ }
280
+ if !ackcompare.SliceStringPEqual(a.ko.Spec.ImageConfig.EntryPoint, b.ko.Spec.ImageConfig.EntryPoint) {
281
+ delta.Add("Spec.ImageConfig.EntryPoint", a.ko.Spec.ImageConfig.EntryPoint, b.ko.Spec.ImageConfig.EntryPoint)
282
+ }
283
+ if ackcompare.HasNilDifference(a.ko.Spec.ImageConfig.WorkingDirectory, b.ko.Spec.ImageConfig.WorkingDirectory) {
284
+ delta.Add("Spec.ImageConfig.WorkingDirectory", a.ko.Spec.ImageConfig.WorkingDirectory, b.ko.Spec.ImageConfig.WorkingDirectory)
285
+ } else if a.ko.Spec.ImageConfig.WorkingDirectory != nil && b.ko.Spec.ImageConfig.WorkingDirectory != nil {
286
+ if *a.ko.Spec.ImageConfig.WorkingDirectory != *b.ko.Spec.ImageConfig.WorkingDirectory {
287
+ delta.Add("Spec.ImageConfig.WorkingDirectory", a.ko.Spec.ImageConfig.WorkingDirectory, b.ko.Spec.ImageConfig.WorkingDirectory)
288
+ }
289
+ }
290
+ }
291
+ if ackcompare.HasNilDifference(a.ko.Spec.KMSKeyARN, b.ko.Spec.KMSKeyARN) {
292
+ delta.Add("Spec.KMSKeyARN", a.ko.Spec.KMSKeyARN, b.ko.Spec.KMSKeyARN)
293
+ } else if a.ko.Spec.KMSKeyARN != nil && b.ko.Spec.KMSKeyARN != nil {
294
+ if *a.ko.Spec.KMSKeyARN != *b.ko.Spec.KMSKeyARN {
295
+ delta.Add("Spec.KMSKeyARN", a.ko.Spec.KMSKeyARN, b.ko.Spec.KMSKeyARN)
296
+ }
297
+ }
298
+ if !ackcompare.SliceStringPEqual(a.ko.Spec.Layers, b.ko.Spec.Layers) {
299
+ delta.Add("Spec.Layers", a.ko.Spec.Layers, b.ko.Spec.Layers)
300
+ }
301
+ if ackcompare.HasNilDifference(a.ko.Spec.MemorySize, b.ko.Spec.MemorySize) {
302
+ delta.Add("Spec.MemorySize", a.ko.Spec.MemorySize, b.ko.Spec.MemorySize)
303
+ } else if a.ko.Spec.MemorySize != nil && b.ko.Spec.MemorySize != nil {
304
+ if *a.ko.Spec.MemorySize != *b.ko.Spec.MemorySize {
305
+ delta.Add("Spec.MemorySize", a.ko.Spec.MemorySize, b.ko.Spec.MemorySize)
306
+ }
307
+ }
308
+ if ackcompare.HasNilDifference(a.ko.Spec.PackageType, b.ko.Spec.PackageType) {
309
+ delta.Add("Spec.PackageType", a.ko.Spec.PackageType, b.ko.Spec.PackageType)
310
+ } else if a.ko.Spec.PackageType != nil && b.ko.Spec.PackageType != nil {
311
+ if *a.ko.Spec.PackageType != *b.ko.Spec.PackageType {
312
+ delta.Add("Spec.PackageType", a.ko.Spec.PackageType, b.ko.Spec.PackageType)
313
+ }
314
+ }
315
+ if ackcompare.HasNilDifference(a.ko.Spec.Publish, b.ko.Spec.Publish) {
316
+ delta.Add("Spec.Publish", a.ko.Spec.Publish, b.ko.Spec.Publish)
317
+ } else if a.ko.Spec.Publish != nil && b.ko.Spec.Publish != nil {
318
+ if *a.ko.Spec.Publish != *b.ko.Spec.Publish {
319
+ delta.Add("Spec.Publish", a.ko.Spec.Publish, b.ko.Spec.Publish)
320
+ }
321
+ }
322
+ if ackcompare.HasNilDifference(a.ko.Spec.Role, b.ko.Spec.Role) {
323
+ delta.Add("Spec.Role", a.ko.Spec.Role, b.ko.Spec.Role)
324
+ } else if a.ko.Spec.Role != nil && b.ko.Spec.Role != nil {
325
+ if *a.ko.Spec.Role != *b.ko.Spec.Role {
326
+ delta.Add("Spec.Role", a.ko.Spec.Role, b.ko.Spec.Role)
327
+ }
328
+ }
329
+ if ackcompare.HasNilDifference(a.ko.Spec.Runtime, b.ko.Spec.Runtime) {
330
+ delta.Add("Spec.Runtime", a.ko.Spec.Runtime, b.ko.Spec.Runtime)
331
+ } else if a.ko.Spec.Runtime != nil && b.ko.Spec.Runtime != nil {
332
+ if *a.ko.Spec.Runtime != *b.ko.Spec.Runtime {
333
+ delta.Add("Spec.Runtime", a.ko.Spec.Runtime, b.ko.Spec.Runtime)
334
+ }
335
+ }
336
+ if ackcompare.HasNilDifference(a.ko.Spec.Tags, b.ko.Spec.Tags) {
337
+ delta.Add("Spec.Tags", a.ko.Spec.Tags, b.ko.Spec.Tags)
338
+ } else if a.ko.Spec.Tags != nil && b.ko.Spec.Tags != nil {
339
+ if !ackcompare.MapStringStringPEqual(a.ko.Spec.Tags, b.ko.Spec.Tags) {
340
+ delta.Add("Spec.Tags", a.ko.Spec.Tags, b.ko.Spec.Tags)
341
+ }
342
+ }
343
+ if ackcompare.HasNilDifference(a.ko.Spec.Timeout, b.ko.Spec.Timeout) {
344
+ delta.Add("Spec.Timeout", a.ko.Spec.Timeout, b.ko.Spec.Timeout)
345
+ } else if a.ko.Spec.Timeout != nil && b.ko.Spec.Timeout != nil {
346
+ if *a.ko.Spec.Timeout != *b.ko.Spec.Timeout {
347
+ delta.Add("Spec.Timeout", a.ko.Spec.Timeout, b.ko.Spec.Timeout)
348
+ }
349
+ }
350
+ if ackcompare.HasNilDifference(a.ko.Spec.TracingConfig, b.ko.Spec.TracingConfig) {
351
+ delta.Add("Spec.TracingConfig", a.ko.Spec.TracingConfig, b.ko.Spec.TracingConfig)
352
+ } else if a.ko.Spec.TracingConfig != nil && b.ko.Spec.TracingConfig != nil {
353
+ if ackcompare.HasNilDifference(a.ko.Spec.TracingConfig.Mode, b.ko.Spec.TracingConfig.Mode) {
354
+ delta.Add("Spec.TracingConfig.Mode", a.ko.Spec.TracingConfig.Mode, b.ko.Spec.TracingConfig.Mode)
355
+ } else if a.ko.Spec.TracingConfig.Mode != nil && b.ko.Spec.TracingConfig.Mode != nil {
356
+ if *a.ko.Spec.TracingConfig.Mode != *b.ko.Spec.TracingConfig.Mode {
357
+ delta.Add("Spec.TracingConfig.Mode", a.ko.Spec.TracingConfig.Mode, b.ko.Spec.TracingConfig.Mode)
358
+ }
359
+ }
360
+ }
361
+ if ackcompare.HasNilDifference(a.ko.Spec.VPCConfig, b.ko.Spec.VPCConfig) {
362
+ delta.Add("Spec.VPCConfig", a.ko.Spec.VPCConfig, b.ko.Spec.VPCConfig)
363
+ } else if a.ko.Spec.VPCConfig != nil && b.ko.Spec.VPCConfig != nil {
364
+ if !ackcompare.SliceStringPEqual(a.ko.Spec.VPCConfig.SecurityGroupIDs, b.ko.Spec.VPCConfig.SecurityGroupIDs) {
365
+ delta.Add("Spec.VPCConfig.SecurityGroupIDs", a.ko.Spec.VPCConfig.SecurityGroupIDs, b.ko.Spec.VPCConfig.SecurityGroupIDs)
366
+ }
367
+ if !ackcompare.SliceStringPEqual(a.ko.Spec.VPCConfig.SubnetIDs, b.ko.Spec.VPCConfig.SubnetIDs) {
368
+ delta.Add("Spec.VPCConfig.SubnetIDs", a.ko.Spec.VPCConfig.SubnetIDs, b.ko.Spec.VPCConfig.SubnetIDs)
369
+ }
370
+ }
371
+ `
372
+ assert .Equal (
373
+ expected ,
374
+ code .CompareResource (
375
+ crd .Config (), crd , "delta" , "a.ko" , "b.ko" , 1 ,
376
+ ),
377
+ )
378
+ }
0 commit comments