mirror of https://github.com/markbates/pkger.git
56 lines
1014 B
Go
56 lines
1014 B
Go
package costello
|
|
|
|
import (
|
|
"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)
|
|
}
|
|
|
|
func openTest(name string, t *testing.T, ref *Ref, pkg pkging.Pkger) {
|
|
r := require.New(t)
|
|
|
|
osf, err := os.Open(filepath.Join(ref.Dir, name))
|
|
r.NoError(err)
|
|
|
|
osi, err := osf.Stat()
|
|
r.NoError(err)
|
|
|
|
r.NoError(LoadRef(ref, pkg))
|
|
|
|
pf, err := pkg.Open(fmt.Sprintf("/%s", name))
|
|
r.NoError(err)
|
|
|
|
psi, err := pf.Stat()
|
|
r.NoError(err)
|
|
|
|
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))
|
|
|
|
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)
|
|
}
|