1// Copyright 2016 VMware, Inc. All Rights Reserved. 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15package backends 16 17import ( 18 "fmt" 19 "testing" 20 "time" 21 22 "github.com/docker/docker/api/types/container" 23 v1 "github.com/docker/docker/image" 24 25 "github.com/stretchr/testify/assert" 26 27 "github.com/vmware/vic/lib/metadata" 28) 29 30func TestConvertV1ImageToDockerImage(t *testing.T) { 31 now := time.Now() 32 33 image := &metadata.ImageConfig{ 34 V1Image: v1.V1Image{ 35 ID: "deadbeef", 36 Size: 1024, 37 Created: now, 38 Parent: "", 39 Config: &container.Config{ 40 Labels: map[string]string{}, 41 }, 42 }, 43 ImageID: "test_id", 44 Digests: []string{fmt.Sprintf("%s@sha:%s", "test_name", "12345")}, 45 Tags: []string{fmt.Sprintf("%s:%s", "test_name", "test_tag")}, 46 Name: "test_name", 47 DiffIDs: map[string]string{"test_diffid": "test_layerid"}, 48 History: []v1.History{}, 49 Reference: "test_name:test_tag", 50 } 51 52 dockerImage := convertV1ImageToDockerImage(image) 53 54 assert.Equal(t, image.ImageID, dockerImage.ID, "Error: expected id %s, got %s", image.ImageID, dockerImage.ID) 55 assert.Equal(t, image.Size, dockerImage.VirtualSize, "Error: expected size %s, got %s", image.Size, dockerImage.VirtualSize) 56 assert.Equal(t, image.Size, dockerImage.Size, "Error: expected size %s, got %s", image.Size, dockerImage.Size) 57 assert.Equal(t, image.Created.Unix(), dockerImage.Created, "Error: expected created %s, got %s", image.Created, dockerImage.Created) 58 assert.Equal(t, image.Parent, dockerImage.ParentID, "Error: expected parent %s, got %s", image.Parent, dockerImage.ParentID) 59 assert.Equal(t, image.Config.Labels, dockerImage.Labels, "Error: expected labels %s, got %s", image.Config.Labels, dockerImage.Labels) 60 assert.Equal(t, image.Digests[0], dockerImage.RepoDigests[0], "Error: expected digest %s, got %s", image.Digests[0], dockerImage.RepoDigests[0]) 61 assert.Equal(t, image.Tags[0], dockerImage.RepoTags[0], "Error: expected tag %s, got %s", image.Tags[0], dockerImage.RepoTags[0]) 62} 63