()
| 249 | } |
| 250 | |
| 251 | func (s *testSuite) TestCraftImage() { |
| 252 | testCases := []struct { |
| 253 | name string |
| 254 | filename string |
| 255 | digest string |
| 256 | content []byte |
| 257 | wantErr bool |
| 258 | errMsg string |
| 259 | }{ |
| 260 | { |
| 261 | name: "empty content", |
| 262 | filename: s.casResource.FileName, |
| 263 | digest: s.casResource.Digest, |
| 264 | content: nil, |
| 265 | wantErr: true, |
| 266 | errMsg: "content is empty", |
| 267 | }, |
| 268 | { |
| 269 | name: "missing filename", |
| 270 | digest: s.casResource.Digest, |
| 271 | content: s.uploadedContent, |
| 272 | wantErr: true, |
| 273 | errMsg: "metadata is not valid", |
| 274 | }, |
| 275 | { |
| 276 | name: "missing digest", |
| 277 | filename: s.casResource.FileName, |
| 278 | content: s.uploadedContent, |
| 279 | wantErr: true, |
| 280 | errMsg: "metadata is not valid", |
| 281 | }, |
| 282 | { |
| 283 | name: "valid image", |
| 284 | filename: s.casResource.FileName, |
| 285 | digest: s.casResource.Digest, |
| 286 | content: s.uploadedContent, |
| 287 | wantErr: false, |
| 288 | }, |
| 289 | } |
| 290 | |
| 291 | assert := assert.New(s.T()) |
| 292 | for _, tc := range testCases { |
| 293 | s.T().Run(tc.name, func(t *testing.T) { |
| 294 | img, err := craftImage(tc.content, &pb.CASResource{FileName: tc.filename, Digest: tc.digest}) |
| 295 | if tc.wantErr { |
| 296 | assert.ErrorContains(err, tc.errMsg) |
| 297 | } else { |
| 298 | assert.NoError(err) |
| 299 | |
| 300 | // Check the image content |
| 301 | mt, err := img.MediaType() |
| 302 | assert.NoError(err) |
| 303 | assert.True(mt.IsImage()) |
| 304 | |
| 305 | // Annotations |
| 306 | m, err := img.Manifest() |
| 307 | assert.NoError(err) |
| 308 |
nothing calls this directly
no test coverage detected