@@ -1408,6 +1408,21 @@ func TestTagImageWithRepoAndTag(t *testing.T) {
1408
1408
}
1409
1409
}
1410
1410
1411
+ func TestTagImageWithID (t * testing.T ) {
1412
+ t .Parallel ()
1413
+ server := DockerServer {images : []docker.Image {{ID : "myimgid" }}, imgIDs : make (map [string ]string )}
1414
+ server .buildMuxer ()
1415
+ recorder := httptest .NewRecorder ()
1416
+ request , _ := http .NewRequest ("POST" , "/images/myimgid/tag?repo=tsuru/new-python" , nil )
1417
+ server .ServeHTTP (recorder , request )
1418
+ if recorder .Code != http .StatusCreated {
1419
+ t .Errorf ("TagImage: wrong status. Want %d. Got %d." , http .StatusCreated , recorder .Code )
1420
+ }
1421
+ if server .imgIDs ["tsuru/new-python" ] != "myimgid" {
1422
+ t .Errorf ("TagImage: did not tag the image" )
1423
+ }
1424
+ }
1425
+
1411
1426
func TestTagImageNotFound (t * testing.T ) {
1412
1427
t .Parallel ()
1413
1428
server := DockerServer {}
@@ -1420,6 +1435,69 @@ func TestTagImageNotFound(t *testing.T) {
1420
1435
}
1421
1436
}
1422
1437
1438
+ func TestInspectImage (t * testing.T ) {
1439
+ t .Parallel ()
1440
+ server := DockerServer {
1441
+ imgIDs : map [string ]string {"tsuru/python" : "a123" },
1442
+ images : []docker.Image {{ID : "a123" , Author : "me" }},
1443
+ }
1444
+ server .buildMuxer ()
1445
+ recorder := httptest .NewRecorder ()
1446
+ request , _ := http .NewRequest ("GET" , "/images/tsuru/python/json" , nil )
1447
+ server .ServeHTTP (recorder , request )
1448
+ if recorder .Code != http .StatusOK {
1449
+ t .Errorf ("InspectImage: wrong status. Want %d. Got %d." , http .StatusOK , recorder .Code )
1450
+ }
1451
+ var img docker.Image
1452
+ err := json .NewDecoder (recorder .Body ).Decode (& img )
1453
+ if err != nil {
1454
+ t .Fatal (err )
1455
+ }
1456
+ expected := docker.Image {
1457
+ ID : "a123" ,
1458
+ Author : "me" ,
1459
+ }
1460
+ if ! reflect .DeepEqual (img , expected ) {
1461
+ t .Errorf ("InspectImage: wrong image returned, expected %#v, got: %#v" , expected , img )
1462
+ }
1463
+ }
1464
+
1465
+ func TestInspectImageWithID (t * testing.T ) {
1466
+ t .Parallel ()
1467
+ server := DockerServer {images : []docker.Image {{ID : "myimgid" , Author : "me" }}, imgIDs : make (map [string ]string )}
1468
+ server .buildMuxer ()
1469
+ recorder := httptest .NewRecorder ()
1470
+ request , _ := http .NewRequest ("GET" , "/images/myimgid/json" , nil )
1471
+ server .ServeHTTP (recorder , request )
1472
+ if recorder .Code != http .StatusOK {
1473
+ t .Errorf ("InspectImage: wrong status. Want %d. Got %d." , http .StatusOK , recorder .Code )
1474
+ }
1475
+ var img docker.Image
1476
+ err := json .NewDecoder (recorder .Body ).Decode (& img )
1477
+ if err != nil {
1478
+ t .Fatal (err )
1479
+ }
1480
+ expected := docker.Image {
1481
+ ID : "myimgid" ,
1482
+ Author : "me" ,
1483
+ }
1484
+ if ! reflect .DeepEqual (img , expected ) {
1485
+ t .Errorf ("InspectImage: wrong image returned, expected %#v, got: %#v" , expected , img )
1486
+ }
1487
+ }
1488
+
1489
+ func TestInspectImageNotFound (t * testing.T ) {
1490
+ t .Parallel ()
1491
+ server := DockerServer {}
1492
+ server .buildMuxer ()
1493
+ recorder := httptest .NewRecorder ()
1494
+ request , _ := http .NewRequest ("GET" , "/images/tsuru/python/json" , nil )
1495
+ server .ServeHTTP (recorder , request )
1496
+ if recorder .Code != http .StatusNotFound {
1497
+ t .Errorf ("InspectImage: wrong status. Want %d. Got %d." , http .StatusNotFound , recorder .Code )
1498
+ }
1499
+ }
1500
+
1423
1501
func addContainers (server * DockerServer , n int ) {
1424
1502
server .cMut .Lock ()
1425
1503
defer server .cMut .Unlock ()
0 commit comments