github.com/vchain-us/vcn@v0.9.11-0.20210921212052-a2484d23c0b3/pkg/extractor/dir/dir_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 dir 10 11 import ( 12 "io/ioutil" 13 "path/filepath" 14 "testing" 15 16 "github.com/stretchr/testify/assert" 17 "github.com/vchain-us/vcn/pkg/uri" 18 ) 19 20 func TestArtifact(t *testing.T) { 21 22 tmpDir, err := ioutil.TempDir("", "TempDir") 23 if err != nil { 24 t.Fatal(err) 25 } 26 27 tmpFile := filepath.Join(tmpDir, "file") 28 err = ioutil.WriteFile(tmpFile, nil, 0644) 29 if err != nil { 30 t.Fatal(err) 31 } 32 // dir - OK 33 u, _ := uri.Parse("dir://" + tmpDir) 34 artifacts, err := Artifact(u) 35 assert.NoError(t, err) 36 assert.NotNil(t, artifacts) 37 assert.Equal(t, "dir", artifacts[0].Kind) 38 assert.Equal(t, filepath.Base(tmpDir), artifacts[0].Name) 39 assert.NotEmpty(t, artifacts[0].Hash) 40 41 // dir (no schema) - Suppressed this behaviour. With wildcard it's possible to specify a dir so this is replaced 42 /*u, _ = uri.Parse(tmpDir) 43 artifacts, err = Artifact(u) 44 assert.NoError(t, err) 45 assert.NotNil(t, artifacts[0]) 46 assert.Equal(t, "dir", artifacts[0].Kind) 47 assert.Equal(t, filepath.Base(tmpDir), artifacts[0].Name) 48 assert.NotEmpty(t, artifacts[0].Hash)*/ 49 50 // wrong schema - SKIP (no error) 51 u, _ = uri.Parse("file://" + tmpDir) 52 artifacts, err = Artifact(u) 53 assert.NoError(t, err) 54 assert.Nil(t, artifacts) 55 56 // not artifacts dir - ERROR 57 u, _ = uri.Parse("dir://" + tmpFile) 58 artifacts, err = Artifact(u) 59 assert.Error(t, err) 60 assert.Nil(t, artifacts) 61 62 // not existing dir - ERROR 63 u, _ = uri.Parse("dir://" + tmpDir + "/not-existing") 64 artifacts, err = Artifact(u) 65 assert.Error(t, err) 66 assert.Nil(t, artifacts) 67 }