aboutsummaryrefslogtreecommitdiff
path: root/common_test.go
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2018-05-16 04:56:32 +0700
committerShulhan <ms@kilabit.info>2018-05-16 04:56:32 +0700
commitb10bec5dafce97067b26090ca11986e260c13ca2 (patch)
tree9cbd348e9d37caeb7d7e89e7e31f07db8ea3cfa5 /common_test.go
parentca8e2e7806d9081c66ab437837e0834337143e84 (diff)
downloadbeku-b10bec5dafce97067b26090ca11986e260c13ca2.tar.xz
[test] Add unit test for common functions
Diffstat (limited to 'common_test.go')
-rw-r--r--common_test.go167
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)
+ }
+}