github.com/vchain-us/vcn@v0.9.11-0.20210921212052-a2484d23c0b3/pkg/extractor/docker/docker_test.go (about) 1 /* 2 * Copyright (c) 2018-2020 vChain, Inc. All Rights Reserved. 3 * This software is released under GPL3. 4 * The full license information can be found under: 5 * https://www.gnu.org/licenses/gpl-3.0.en.html 6 * 7 */ 8 9 package docker 10 11 import ( 12 "os/exec" 13 "testing" 14 15 "github.com/stretchr/testify/assert" 16 "github.com/vchain-us/vcn/pkg/uri" 17 ) 18 19 func TestDocker(t *testing.T) { 20 _, err := exec.Command("docker", "pull", "hello-world").Output() 21 if err != nil { 22 t.Skip("docker not available") 23 } 24 25 u, _ := uri.Parse("docker://hello-world") 26 artifacts, err := Artifact(u) 27 assert.NoError(t, err) 28 assert.NotNil(t, artifacts) 29 assert.Equal(t, "docker://hello-world:latest", artifacts[0].Name) 30 assert.Regexp(t, "[0-9a-f]{64}", artifacts[0].Hash) 31 assert.NotZero(t, artifacts[0].Size) 32 } 33 34 func TestInferVer(t *testing.T) { 35 testCases := map[string]string{ 36 "golang:1.12-stretch": "1.12-stretch", 37 "golang:latest": "", 38 } 39 40 for tag, ver := range testCases { 41 i := image{ 42 RepoTags: []string{tag}, 43 } 44 assert.Equal( 45 t, 46 ver, 47 i.inferVer(), 48 "wrong version for %s", tag, 49 ) 50 } 51 }