package pkger import ( "testing" "github.com/stretchr/testify/require" ) func Test_Path_String(t *testing.T) { table := []struct { in Path out string }{ {in: Path{}, out: ":/"}, {in: Path{Pkg: curPkg}, out: curPkg + ":/"}, {in: Path{Pkg: curPkg, Name: "/foo.go"}, out: curPkg + ":/foo.go"}, {in: Path{Name: "/foo.go"}, out: ":/foo.go"}, {in: Path{Pkg: "github.com/markbates/pkger/internal/examples/app"}, out: "github.com/markbates/pkger/internal/examples/app:/"}, } for _, tt := range table { t.Run(tt.in.String(), func(st *testing.T) { r := require.New(st) r.Equal(tt.out, tt.in.String()) }) } } func Test_Parse(t *testing.T) { table := []struct { in string out Path }{ {in: curPkg, out: Path{Pkg: curPkg, Name: "/"}}, {in: curPkg + ":/foo.go", out: Path{Pkg: curPkg, Name: "/foo.go"}}, {in: "/paths/parse_test.go", out: Path{Pkg: curPkg, Name: "/paths/parse_test.go"}}, {in: `\windows\path.go`, out: Path{Pkg: curPkg, Name: "/windows/path.go"}}, {in: "", out: Path{Pkg: curPkg, Name: "/"}}, {in: "github.com/markbates/pkger/internal/examples/app", out: Path{Pkg: "github.com/markbates/pkger/internal/examples/app", Name: "/"}}, } for _, tt := range table { t.Run(tt.in, func(st *testing.T) { r := require.New(st) pt, err := Parse(tt.in) r.NoError(err) r.Equal(tt.out.Pkg, pt.Pkg) r.Equal(tt.out.Name, pt.Name) }) } }