github.com/falafeljan/pkger@v0.18.0/pkging/mem/add_test.go (about) 1 package mem_test 2 3 import ( 4 "os" 5 "path/filepath" 6 "testing" 7 8 "github.com/markbates/pkger/here" 9 "github.com/markbates/pkger/pkging/mem" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func Test_Pkger_Add(t *testing.T) { 14 r := require.New(t) 15 16 cur, err := here.Package("github.com/markbates/pkger") 17 r.NoError(err) 18 19 pkg, err := mem.New(cur) 20 r.NoError(err) 21 22 var exp []os.FileInfo 23 root := filepath.Join(cur.Dir, "pkging", "pkgtest", "testdata", "ref") 24 err = filepath.Walk(root, func(path string, info os.FileInfo, err error) error { 25 if err != nil { 26 return err 27 } 28 29 f, err := os.Open(path) 30 if err != nil { 31 return err 32 } 33 defer f.Close() 34 35 exp = append(exp, info) 36 return pkg.Add(f) 37 }) 38 r.NoError(err) 39 40 var act []os.FileInfo 41 err = pkg.Walk("/", func(path string, info os.FileInfo, err error) error { 42 if err != nil { 43 return err 44 } 45 act = append(act, info) 46 return nil 47 }) 48 r.NoError(err) 49 50 r.Len(act, len(exp)) 51 52 for i, e := range exp { 53 a := act[i] 54 55 r.Equal(e.Name(), a.Name()) 56 r.Equal(e.Size(), a.Size()) 57 r.Equal(e.Mode(), a.Mode()) 58 r.Equal(e.IsDir(), a.IsDir()) 59 } 60 61 }