@@ -314,10 +314,8 @@ func verifyDecodedImage(t *testing.T, imgBytes []byte, mimeType string, original
314314}
315315
316316func TestGetImagesFromGetImage (t * testing.T ) {
317- // Create a test image
318317 testImg := image .NewRGBA (image .Rect (0 , 0 , 100 , 100 ))
319318
320- // Create a test camera that implements Image
321319 testCam := & testCamera {
322320 Named : camera .Named ("test_cam" ).AsNamed (),
323321 imageFunc : func (ctx context.Context , mimeType string , extra map [string ]interface {}) ([]byte , camera.ImageMetadata , error ) {
@@ -329,39 +327,42 @@ func TestGetImagesFromGetImage(t *testing.T) {
329327 },
330328 }
331329
332- // Test with PNG mime type
333- images , metadata , err := camera .GetImagesFromGetImage (context .Background (), rutils .MimeTypePNG , testCam )
334- test .That (t , err , test .ShouldBeNil )
335- test .That (t , len (images ), test .ShouldEqual , 1 )
336- test .That (t , images [0 ].SourceName , test .ShouldEqual , testCam .Name ().String ())
337- verifyImageEquality (t , images [0 ].Image , testImg )
338- test .That (t , metadata .CapturedAt .IsZero (), test .ShouldBeFalse )
339-
340- // Test with JPEG mime type
341- images , metadata , err = camera .GetImagesFromGetImage (context .Background (), rutils .MimeTypeJPEG , testCam )
342- test .That (t , err , test .ShouldBeNil )
343- test .That (t , len (images ), test .ShouldEqual , 1 )
344- test .That (t , images [0 ].SourceName , test .ShouldEqual , testCam .Name ().String ())
345- verifyImageEquality (t , images [0 ].Image , testImg )
346- test .That (t , metadata .CapturedAt .IsZero (), test .ShouldBeFalse )
347-
348- // Test with error case
349- errorCam := & testCamera {
350- Named : camera .Named ("error_cam" ).AsNamed (),
351- imageFunc : func (ctx context.Context , mimeType string , extra map [string ]interface {}) ([]byte , camera.ImageMetadata , error ) {
352- return nil , camera.ImageMetadata {}, errors .New ("test error" )
353- },
354- }
355- _ , _ , err = camera .GetImagesFromGetImage (context .Background (), rutils .MimeTypePNG , errorCam )
356- test .That (t , err , test .ShouldBeError , errors .New ("could not decode image: test error" ))
330+ t .Run ("PNG mime type" , func (t * testing.T ) {
331+ images , metadata , err := camera .GetImagesFromGetImage (context .Background (), rutils .MimeTypePNG , testCam )
332+ test .That (t , err , test .ShouldBeNil )
333+ test .That (t , len (images ), test .ShouldEqual , 1 )
334+ test .That (t , images [0 ].SourceName , test .ShouldEqual , testCam .Name ().String ())
335+ verifyImageEquality (t , images [0 ].Image , testImg )
336+ test .That (t , metadata .CapturedAt .IsZero (), test .ShouldBeFalse )
337+ })
338+
339+ t .Run ("JPEG mime type" , func (t * testing.T ) {
340+ images , metadata , err := camera .GetImagesFromGetImage (context .Background (), rutils .MimeTypeJPEG , testCam )
341+ test .That (t , err , test .ShouldBeNil )
342+ test .That (t , len (images ), test .ShouldEqual , 1 )
343+ test .That (t , images [0 ].SourceName , test .ShouldEqual , testCam .Name ().String ())
344+ imgBytes , err := rimage .EncodeImage (context .Background (), images [0 ].Image , rutils .MimeTypeJPEG )
345+ test .That (t , err , test .ShouldBeNil )
346+ verifyDecodedImage (t , imgBytes , rutils .MimeTypeJPEG , testImg )
347+ test .That (t , metadata .CapturedAt .IsZero (), test .ShouldBeFalse )
348+ })
349+
350+ t .Run ("error case" , func (t * testing.T ) {
351+ errorCam := & testCamera {
352+ Named : camera .Named ("error_cam" ).AsNamed (),
353+ imageFunc : func (ctx context.Context , mimeType string , extra map [string ]interface {}) ([]byte , camera.ImageMetadata , error ) {
354+ return nil , camera.ImageMetadata {}, errors .New ("test error" )
355+ },
356+ }
357+ _ , _ , err := camera .GetImagesFromGetImage (context .Background (), rutils .MimeTypePNG , errorCam )
358+ test .That (t , err , test .ShouldBeError , errors .New ("could not decode image: test error" ))
359+ })
357360}
358361
359362func TestGetImageFromGetImages (t * testing.T ) {
360- // Create test images
361363 testImg1 := image .NewRGBA (image .Rect (0 , 0 , 100 , 100 ))
362364 testImg2 := image .NewRGBA (image .Rect (0 , 0 , 200 , 200 ))
363365
364- // Create a test camera that implements Images
365366 testCam := & testCamera {
366367 Named : camera .Named ("test_cam" ).AsNamed (),
367368 imagesFunc : func (ctx context.Context ) ([]camera.NamedImage , resource.ResponseMetadata , error ) {
@@ -372,35 +373,47 @@ func TestGetImageFromGetImages(t *testing.T) {
372373 },
373374 }
374375
375- // Test with PNG mime type
376- imgBytes , metadata , err := camera .GetImageFromGetImages (context .Background (), rutils .MimeTypePNG , testCam )
377- test .That (t , err , test .ShouldBeNil )
378- test .That (t , metadata .MimeType , test .ShouldEqual , rutils .MimeTypePNG )
379- verifyDecodedImage (t , imgBytes , rutils .MimeTypePNG , testImg1 )
380-
381- // Test with JPEG mime type
382- imgBytes , metadata , err = camera .GetImageFromGetImages (context .Background (), rutils .MimeTypeJPEG , testCam )
383- test .That (t , err , test .ShouldBeNil )
384- test .That (t , metadata .MimeType , test .ShouldEqual , rutils .MimeTypeJPEG )
385- verifyDecodedImage (t , imgBytes , rutils .MimeTypeJPEG , testImg1 )
386-
387- // Test with error case
388- errorCam := & testCamera {
389- Named : camera .Named ("error_cam" ).AsNamed (),
390- imagesFunc : func (ctx context.Context ) ([]camera.NamedImage , resource.ResponseMetadata , error ) {
391- return nil , resource.ResponseMetadata {}, errors .New ("test error" )
392- },
393- }
394- _ , _ , err = camera .GetImageFromGetImages (context .Background (), rutils .MimeTypePNG , errorCam )
395- test .That (t , err , test .ShouldBeError , errors .New ("could not get images from camera: test error" ))
376+ t .Run ("PNG mime type" , func (t * testing.T ) {
377+ imgBytes , metadata , err := camera .GetImageFromGetImages (context .Background (), rutils .MimeTypePNG , testCam )
378+ test .That (t , err , test .ShouldBeNil )
379+ test .That (t , metadata .MimeType , test .ShouldEqual , rutils .MimeTypePNG )
380+ verifyDecodedImage (t , imgBytes , rutils .MimeTypePNG , testImg1 )
381+ })
396382
397- // Test with empty images case
398- emptyCam := & testCamera {
399- Named : camera .Named ("empty_cam" ).AsNamed (),
400- imagesFunc : func (ctx context.Context ) ([]camera.NamedImage , resource.ResponseMetadata , error ) {
401- return []camera.NamedImage {}, resource.ResponseMetadata {CapturedAt : time .Now ()}, nil
402- },
403- }
404- _ , _ , err = camera .GetImageFromGetImages (context .Background (), rutils .MimeTypePNG , emptyCam )
405- test .That (t , err , test .ShouldBeError , errors .New ("could not get images from camera: no images returned" ))
383+ t .Run ("JPEG mime type" , func (t * testing.T ) {
384+ imgBytes , metadata , err := camera .GetImageFromGetImages (context .Background (), rutils .MimeTypeJPEG , testCam )
385+ test .That (t , err , test .ShouldBeNil )
386+ test .That (t , metadata .MimeType , test .ShouldEqual , rutils .MimeTypeJPEG )
387+ verifyDecodedImage (t , imgBytes , rutils .MimeTypeJPEG , testImg1 )
388+ })
389+
390+ t .Run ("error case" , func (t * testing.T ) {
391+ errorCam := & testCamera {
392+ Named : camera .Named ("error_cam" ).AsNamed (),
393+ imagesFunc : func (ctx context.Context ) ([]camera.NamedImage , resource.ResponseMetadata , error ) {
394+ return nil , resource.ResponseMetadata {}, errors .New ("test error" )
395+ },
396+ }
397+ _ , _ , err := camera .GetImageFromGetImages (context .Background (), rutils .MimeTypePNG , errorCam )
398+ test .That (t , err , test .ShouldBeError , errors .New ("could not get images from camera: test error" ))
399+ })
400+
401+ t .Run ("empty images case" , func (t * testing.T ) {
402+ emptyCam := & testCamera {
403+ Named : camera .Named ("empty_cam" ).AsNamed (),
404+ imagesFunc : func (ctx context.Context ) ([]camera.NamedImage , resource.ResponseMetadata , error ) {
405+ return []camera.NamedImage {}, resource.ResponseMetadata {CapturedAt : time .Now ()}, nil
406+ },
407+ }
408+ _ , _ , err := camera .GetImageFromGetImages (context .Background (), rutils .MimeTypePNG , emptyCam )
409+ test .That (t , err , test .ShouldBeError , errors .New ("no images returned from camera" ))
410+ })
411+
412+ t .Run ("not implemented case" , func (t * testing.T ) {
413+ notImplCam := & testCamera {
414+ Named : camera .Named ("not_impl_cam" ).AsNamed (),
415+ }
416+ _ , _ , err := camera .GetImageFromGetImages (context .Background (), rutils .MimeTypePNG , notImplCam )
417+ test .That (t , err , test .ShouldBeError , errors .New ("could not get images from camera: not implemented" ))
418+ })
406419}
0 commit comments