@@ -146,3 +146,84 @@ func Test_ImageToPlan(t *testing.T) {
146146 })
147147 }
148148}
149+
150+ func Test_ComputeImageToSDK (t * testing.T ) {
151+ cases := []struct {
152+ name string
153+ image * infrav1.Image
154+ expect func (* GomegaWithT , * compute.ImageReference , error )
155+ }{
156+ {
157+ name : "Should return parsed compute gallery image id" ,
158+ image : & infrav1.Image {
159+ ComputeGallery : & infrav1.AzureComputeGalleryImage {
160+ ResourceGroup : to .StringPtr ("my-resourcegroup" ),
161+ SubscriptionID : to .StringPtr ("my-subscription-id" ),
162+ Gallery : "my-gallery" ,
163+ Name : "my-image" ,
164+ Version : "my-version" ,
165+ },
166+ },
167+ expect : func (g * GomegaWithT , result * compute.ImageReference , err error ) {
168+ g .Expect (err ).Should (BeNil ())
169+ g .Expect (result ).To (Equal (& compute.ImageReference {
170+ ID : to .StringPtr ("/subscriptions/my-subscription-id/resourceGroups/my-resourcegroup/providers/Microsoft.Compute/galleries/my-gallery/images/my-image/versions/my-version" ),
171+ }))
172+ },
173+ },
174+ {
175+ name : "Should return parsed shared gallery image id" ,
176+ image : & infrav1.Image {
177+ SharedGallery : & infrav1.AzureSharedGalleryImage {
178+ ResourceGroup : "my-resourcegroup" ,
179+ SubscriptionID : "my-subscription-id" ,
180+ Gallery : "my-gallery" ,
181+ Name : "my-image" ,
182+ Version : "my-version" ,
183+ },
184+ },
185+ expect : func (g * GomegaWithT , result * compute.ImageReference , err error ) {
186+ g .Expect (err ).Should (BeNil ())
187+ g .Expect (result ).To (Equal (& compute.ImageReference {
188+ ID : to .StringPtr ("/subscriptions/my-subscription-id/resourceGroups/my-resourcegroup/providers/Microsoft.Compute/galleries/my-gallery/images/my-image/versions/my-version" ),
189+ }))
190+ },
191+ },
192+ {
193+ name : "Should return parsed community gallery image id" ,
194+ image : & infrav1.Image {
195+ ComputeGallery : & infrav1.AzureComputeGalleryImage {
196+ Gallery : "my-gallery" ,
197+ Name : "my-image" ,
198+ Version : "my-version" ,
199+ },
200+ },
201+ expect : func (g * GomegaWithT , result * compute.ImageReference , err error ) {
202+ g .Expect (err ).Should (BeNil ())
203+ g .Expect (result ).To (Equal (& compute.ImageReference {
204+ CommunityGalleryImageID : to .StringPtr ("/CommunityGalleries/my-gallery/Images/my-image/Versions/my-version" ),
205+ }))
206+ },
207+ },
208+ {
209+ name : "Should return error if SharedGallery and ComputeGallery are nil" ,
210+ image : & infrav1.Image {
211+ ComputeGallery : nil ,
212+ SharedGallery : nil ,
213+ },
214+ expect : func (g * GomegaWithT , result * compute.ImageReference , err error ) {
215+ g .Expect (err ).ShouldNot (BeNil ())
216+ },
217+ },
218+ }
219+
220+ for _ , c := range cases {
221+ c := c
222+ t .Run (c .name , func (t * testing.T ) {
223+ t .Parallel ()
224+ g := NewGomegaWithT (t )
225+ result , err := computeImageToSDK (c .image )
226+ c .expect (g , result , err )
227+ })
228+ }
229+ }
0 commit comments