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  }