@@ -172,3 +172,207 @@ func TestCompareResource_Lambda_CodeSigningConfig(t *testing.T) {
172172 ),
173173 )
174174}
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