@@ -1408,6 +1408,21 @@ func TestTagImageWithRepoAndTag(t *testing.T) {
14081408 }
14091409}
14101410
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+
14111426func TestTagImageNotFound (t * testing.T ) {
14121427 t .Parallel ()
14131428 server := DockerServer {}
@@ -1420,6 +1435,69 @@ func TestTagImageNotFound(t *testing.T) {
14201435 }
14211436}
14221437
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+
14231501func addContainers (server * DockerServer , n int ) {
14241502 server .cMut .Lock ()
14251503 defer server .cMut .Unlock ()
0 commit comments