pkger/pkging/costello/open.go

56 lines
1014 B
Go
Raw Normal View History

package costello
import (
2019-10-30 23:49:55 +03:00
"fmt"
"io/ioutil"
"os"
"path/filepath"
"testing"
"time"
"github.com/markbates/pkger/pkging"
"github.com/stretchr/testify/require"
)
func OpenTest(t *testing.T, ref *Ref, pkg pkging.Pkger) {
openTest("go.mod", t, ref, pkg)
2019-10-30 23:49:55 +03:00
}
func openTest(name string, t *testing.T, ref *Ref, pkg pkging.Pkger) {
r := require.New(t)
2019-10-30 23:49:55 +03:00
osf, err := os.Open(filepath.Join(ref.Dir, name))
r.NoError(err)
osi, err := osf.Stat()
r.NoError(err)
2019-10-30 23:39:05 +03:00
r.NoError(LoadRef(ref, pkg))
2019-10-30 23:49:55 +03:00
pf, err := pkg.Open(fmt.Sprintf("/%s", name))
r.NoError(err)
psi, err := pf.Stat()
r.NoError(err)
2019-10-31 00:15:49 +03:00
r.Equal(osi.IsDir(), psi.IsDir())
r.Equal(osi.Name(), psi.Name())
r.Equal(osi.Mode(), psi.Mode())
r.Equal(osi.Size(), psi.Size())
r.Equal(osi.ModTime().Format(time.RFC3339), psi.ModTime().Format(time.RFC3339))
2019-10-31 00:15:49 +03:00
if osi.IsDir() {
return
}
osb, err := ioutil.ReadAll(osf)
r.NoError(err)
r.NoError(osf.Close())
psb, err := ioutil.ReadAll(pf)
r.NoError(err)
r.NoError(pf.Close())
r.Equal(osb, psb)
}