64 lines
1.3 KiB
Go
64 lines
1.3 KiB
Go
|
package target
|
||
|
|
||
|
import (
|
||
|
"io/ioutil"
|
||
|
"os"
|
||
|
"testing"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
func TestPath(t *testing.T) {
|
||
|
t.Parallel()
|
||
|
dirs := []string{"testdata/src_dir", "testdata/target_dir"}
|
||
|
for _, d := range dirs {
|
||
|
os.MkdirAll(d, 0777)
|
||
|
time.Sleep(10 * time.Millisecond)
|
||
|
}
|
||
|
files := []string{
|
||
|
"testdata/src_dir/some_file",
|
||
|
"testdata/src_dir/some_",
|
||
|
"testdata/src_file",
|
||
|
"testdata/target_dir/some_file",
|
||
|
"testdata/target_file",
|
||
|
}
|
||
|
for _, v := range files {
|
||
|
err := ioutil.WriteFile(v, []byte(v), 0600)
|
||
|
if err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
time.Sleep(500 * time.Millisecond)
|
||
|
}
|
||
|
defer func() {
|
||
|
err := os.RemoveAll("testdata")
|
||
|
if err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
}()
|
||
|
|
||
|
table := []struct {
|
||
|
desc string
|
||
|
src string
|
||
|
targets []string
|
||
|
expect bool
|
||
|
}{
|
||
|
{"Files only target checks", "testdata/src_file",
|
||
|
[]string{"testdata/target_file"}, true},
|
||
|
{"Files only target doesn't check", "testdata/target_file",
|
||
|
[]string{"testdata/src_file"}, false},
|
||
|
{"Directories only target checks", "testdata/src_dir",
|
||
|
[]string{"testdata/target_dir"}, true},
|
||
|
{"Directories only target doesn't checks", "testdata/target_dir",
|
||
|
[]string{"testdata/src_dir"}, false},
|
||
|
}
|
||
|
|
||
|
for _, c := range table {
|
||
|
v, err := Path(c.src, c.targets...)
|
||
|
if err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
if v != c.expect {
|
||
|
t.Errorf("%s : expecting %v got %v", c.desc, c.expect, v)
|
||
|
}
|
||
|
}
|
||
|
}
|