diff options
| author | Shulhan <ms@kilabit.info> | 2018-05-16 04:56:32 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2018-05-16 04:56:32 +0700 |
| commit | b10bec5dafce97067b26090ca11986e260c13ca2 (patch) | |
| tree | 9cbd348e9d37caeb7d7e89e7e31f07db8ea3cfa5 /common_test.go | |
| parent | ca8e2e7806d9081c66ab437837e0834337143e84 (diff) | |
| download | beku-b10bec5dafce97067b26090ca11986e260c13ca2.tar.xz | |
[test] Add unit test for common functions
Diffstat (limited to 'common_test.go')
| -rw-r--r-- | common_test.go | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/common_test.go b/common_test.go new file mode 100644 index 0000000..a1f43bd --- /dev/null +++ b/common_test.go @@ -0,0 +1,167 @@ +package beku + +import ( + "io/ioutil" + "os" + "testing" + + "github.com/shuLhan/share/lib/test" +) + +func TestIsIgnoredDir(t *testing.T) { + cases := []struct { + name string + exp bool + }{{ + name: "notignored", + exp: false, + }, { + name: "_dashed", + exp: true, + }, { + name: "d_ashed", + exp: false, + }, { + name: "dashed_", + exp: false, + }, { + name: ".dotted", + exp: true, + }, { + name: "d.otted", + exp: false, + }, { + name: "dotted.", + exp: false, + }, { + name: "vendored", + exp: false, + }, { + name: "vendor", + exp: true, + }, { + name: "testdata", + exp: true, + }, { + name: "test_data", + exp: false, + }} + + var got bool + for _, c := range cases { + t.Log(c) + got = IsIgnoredDir(c.name) + test.Assert(t, "", c.exp, got, true) + } +} + +func TestConfirm(t *testing.T) { + cases := []struct { + defIsYes bool + answer string + exp bool + }{{ + defIsYes: true, + exp: true, + }, { + defIsYes: true, + answer: " ", + exp: true, + }, { + defIsYes: true, + answer: " no", + exp: false, + }, { + defIsYes: true, + answer: " yes", + exp: true, + }, { + defIsYes: true, + answer: " Ys", + exp: true, + }, { + defIsYes: false, + exp: false, + }, { + defIsYes: false, + answer: "", + exp: false, + }, { + + defIsYes: false, + answer: " no", + exp: false, + }, { + defIsYes: false, + answer: " yes", + exp: true, + }} + + var got bool + + in, err := ioutil.TempFile("", "") + if err != nil { + t.Fatal(err) + } + + defer in.Close() + + for _, c := range cases { + t.Log(c) + + in.WriteString(c.answer + "\n") + + _, err = in.Seek(0, os.SEEK_SET) + if err != nil { + t.Fatal(err) + } + + got = confirm(in, "confirm", c.defIsYes) + + test.Assert(t, "answer", c.exp, got, true) + + err = in.Truncate(0) + if err != nil { + t.Fatal(err) + } + + _, err = in.Seek(0, os.SEEK_SET) + if err != nil { + t.Fatal(err) + } + } +} + +func TestParsePkgVersion(t *testing.T) { + cases := []struct { + pkgName string + expPkg string + expVer string + }{{ + pkgName: "", + }, { + pkgName: " pkg", + expPkg: "pkg", + }, { + pkgName: " pkg @", + expPkg: "pkg", + }, { + pkgName: " @ 123", + expVer: "123", + }, { + pkgName: " pkg @ 123", + expPkg: "pkg", + expVer: "123", + }} + + var gotPkg, gotVer string + + for _, c := range cases { + t.Log(c) + + gotPkg, gotVer = parsePkgVersion(c.pkgName) + + test.Assert(t, "package name", c.expPkg, gotPkg, true) + test.Assert(t, "version", c.expVer, gotVer, true) + } +} |
