gopkg.in/essentialkaos/ek.v3@v3.5.1/tmp/tmp_test.go (about) 1 package tmp 2 3 // ////////////////////////////////////////////////////////////////////////////////// // 4 // // 5 // Copyright (c) 2009-2016 Essential Kaos // 6 // Essential Kaos Open Source License <http://essentialkaos.com/ekol?en> // 7 // // 8 // ////////////////////////////////////////////////////////////////////////////////// // 9 10 import ( 11 "os" 12 "testing" 13 14 . "pkg.re/check.v1" 15 16 "pkg.re/essentialkaos/ek.v3/fsutil" 17 ) 18 19 // ////////////////////////////////////////////////////////////////////////////////// // 20 21 type TmpSuite struct { 22 TempDir string 23 } 24 25 // ////////////////////////////////////////////////////////////////////////////////// // 26 27 func Test(t *testing.T) { TestingT(t) } 28 29 // ////////////////////////////////////////////////////////////////////////////////// // 30 31 var _ = Suite(&TmpSuite{}) 32 33 // ////////////////////////////////////////////////////////////////////////////////// // 34 35 func (ts *TmpSuite) SetUpSuite(c *C) { 36 ts.TempDir = c.MkDir() 37 } 38 39 func (ts *TmpSuite) TestMk(c *C) { 40 t, err := NewTemp() 41 42 c.Assert(err, IsNil) 43 c.Assert(t, NotNil) 44 c.Assert(t.Dir, Equals, "/tmp") 45 46 t.Clean() 47 } 48 49 func (ts *TmpSuite) TestErrors(c *C) { 50 t, err := NewTemp("/") 51 52 c.Assert(err, NotNil) 53 c.Assert(t, IsNil) 54 55 t, err = NewTemp("/tmpz") 56 57 c.Assert(err, NotNil) 58 c.Assert(t, IsNil) 59 60 os.Create(ts.TempDir + "/test_") 61 62 t, err = NewTemp(ts.TempDir + "/test_") 63 64 c.Assert(err, NotNil) 65 c.Assert(t, IsNil) 66 67 t = &Temp{Dir: "/"} 68 69 tmpDir, err := t.MkDir("test") 70 71 c.Assert(tmpDir, Equals, "") 72 c.Assert(err, NotNil) 73 74 tmpFd, tmpFile, err := t.MkFile("test") 75 76 c.Assert(tmpFd, IsNil) 77 c.Assert(tmpFile, Equals, "") 78 c.Assert(err, NotNil) 79 80 var nilTemp *Temp 81 82 _, err = nilTemp.MkDir() 83 84 c.Assert(err, NotNil) 85 86 _, _, err = nilTemp.MkFile() 87 88 c.Assert(err, NotNil) 89 } 90 91 func (ts *TmpSuite) TestMkDir(c *C) { 92 t, err := NewTemp(ts.TempDir) 93 94 c.Assert(err, IsNil) 95 c.Assert(t, NotNil) 96 c.Assert(t.Dir, Equals, ts.TempDir) 97 98 tmpDir, err := t.MkDir("test") 99 100 c.Assert(tmpDir, Not(Equals), "") 101 c.Assert(err, IsNil) 102 c.Assert(fsutil.IsExist(tmpDir), Equals, true) 103 c.Assert(fsutil.IsDir(tmpDir), Equals, true) 104 c.Assert(fsutil.IsReadable(tmpDir), Equals, true) 105 c.Assert(fsutil.IsWritable(tmpDir), Equals, true) 106 c.Assert(fsutil.GetPerm(tmpDir), Equals, os.FileMode(0750)) 107 108 t.Clean() 109 110 c.Assert(fsutil.IsExist(tmpDir), Equals, false) 111 } 112 113 func (ts *TmpSuite) TestMkFile(c *C) { 114 t, err := NewTemp(ts.TempDir) 115 116 c.Assert(err, IsNil) 117 c.Assert(t, NotNil) 118 c.Assert(t.Dir, Equals, ts.TempDir) 119 120 tmpFd, tmpFile, err := t.MkFile("test") 121 122 c.Assert(tmpFd, NotNil) 123 c.Assert(err, IsNil) 124 c.Assert(tmpFile, Not(Equals), "") 125 c.Assert(fsutil.IsExist(tmpFile), Equals, true) 126 c.Assert(fsutil.IsRegular(tmpFile), Equals, true) 127 c.Assert(fsutil.IsReadable(tmpFile), Equals, true) 128 c.Assert(fsutil.IsWritable(tmpFile), Equals, true) 129 c.Assert(fsutil.GetPerm(tmpFile), Equals, os.FileMode(0640)) 130 131 t.Clean() 132 133 c.Assert(fsutil.IsExist(tmpFile), Equals, false) 134 } 135 136 func (ts *TmpSuite) TestMkName(c *C) { 137 t, err := NewTemp(ts.TempDir) 138 139 c.Assert(err, IsNil) 140 c.Assert(t, NotNil) 141 c.Assert(t.Dir, Equals, ts.TempDir) 142 143 c.Assert(t.MkName(), Not(Equals), "") 144 c.Assert(t.MkName("1234"), Not(Equals), "") 145 146 ln := len(ts.TempDir + "/") 147 148 c.Assert(t.MkName("1234.json")[ln+14:], Equals, "1234.json") 149 }