aboutsummaryrefslogtreecommitdiff
path: root/common_test.go
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2018-05-26 20:31:05 +0700
committerShulhan <ms@kilabit.info>2018-05-27 02:12:39 +0700
commitf39c1b5787f5408c8720b2b80f9208d86e2d8e00 (patch)
treee0c9e4e2639aa438ccd12e48e3736178039ebcfb /common_test.go
parent78690021d83ed5e4ca9dac0eb37da730faf5df22 (diff)
downloadbeku-f39c1b5787f5408c8720b2b80f9208d86e2d8e00.tar.xz
env.Remove: remove empty directory recursively on "src" and "pkg"
Diffstat (limited to 'common_test.go')
-rw-r--r--common_test.go88
1 files changed, 88 insertions, 0 deletions
diff --git a/common_test.go b/common_test.go
index 7cdf9dc..5080a37 100644
--- a/common_test.go
+++ b/common_test.go
@@ -3,12 +3,19 @@ package beku
import (
"io"
"io/ioutil"
+ "os"
"testing"
"github.com/shuLhan/share/lib/test"
)
func TestIsDirEmpty(t *testing.T) {
+ emptyDir := "testdata/dirempty"
+ err := os.MkdirAll(emptyDir, 0700)
+ if err != nil {
+ t.Fatal(err)
+ }
+
cases := []struct {
desc string
path string
@@ -117,6 +124,87 @@ func TestIsTagVersion(t *testing.T) {
}
}
+func TestRmdirEmptyAll(t *testing.T) {
+ cases := []struct {
+ desc string
+ createDir string
+ createFile string
+ path string
+ expExist string
+ expNotExist string
+ }{{
+ desc: "With path as file",
+ path: "testdata/beku.db",
+ expExist: "testdata/beku.db",
+ }, {
+ desc: "With empty path",
+ createDir: "testdata/a/b/c/d",
+ expExist: "testdata/a/b/c/d",
+ }, {
+ desc: "With non empty at middle",
+ createDir: "testdata/a/b/c/d",
+ createFile: "testdata/a/b/file",
+ path: "testdata/a/b/c/d",
+ expExist: "testdata/a/b/file",
+ expNotExist: "testdata/a/b/c",
+ }, {
+ desc: "With first path not exist",
+ createDir: "testdata/a/b/c",
+ path: "testdata/a/b/c/d",
+ expExist: "testdata/a/b/file",
+ expNotExist: "testdata/a/b/c",
+ }, {
+ desc: "With non empty at parent",
+ createDir: "testdata/dirempty/a/b/c/d",
+ path: "testdata/dirempty/a/b/c/d",
+ expExist: "testdata",
+ expNotExist: "testdata/dirempty",
+ }}
+
+ var (
+ err error
+ f *os.File
+ )
+ for _, c := range cases {
+ t.Log(c.desc)
+
+ if len(c.createDir) > 0 {
+ err = os.MkdirAll(c.createDir, 0700)
+ if err != nil {
+ t.Fatal(err)
+ }
+ }
+ if len(c.createFile) > 0 {
+ f, err = os.Create(c.createFile)
+ if err != nil {
+ t.Fatal(err)
+ }
+ err = f.Close()
+ if err != nil {
+ t.Fatal(err)
+ }
+ }
+
+ err = RmdirEmptyAll(c.path)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ if len(c.expExist) > 0 {
+ _, err = os.Stat(c.expExist)
+ if err != nil {
+ t.Fatal(err)
+ }
+ }
+ if len(c.expNotExist) > 0 {
+ _, err = os.Stat(c.expNotExist)
+ if !os.IsNotExist(err) {
+ t.Fatal(err)
+ }
+ }
+ }
+}
+
func TestConfirm(t *testing.T) {
cases := []struct {
defIsYes bool