github.com/3JoB/vfs@v1.0.0/ioutil_test.go (about) 1 package vfs_test 2 3 import ( 4 "bytes" 5 "os" 6 "testing" 7 8 "github.com/3JoB/vfs" 9 "github.com/3JoB/vfs/memfs" 10 ) 11 12 var ( 13 testpath = "/example.txt" 14 testmode = os.FileMode(0600) 15 testdata = bytes.Repeat([]byte("abcdefghijklmnopqrstuvwxyz"), 100) 16 ) 17 18 func TestWriteFile(t *testing.T) { 19 fs := memfs.Create() 20 21 vfs.WriteFile(fs, testpath, testdata, testmode) 22 23 info, err := fs.Stat(testpath) 24 if err != nil { 25 t.Fatalf("File not created") 26 } 27 if info.Size() != int64(len(testdata)) { 28 t.Fatalf("Bad file size: %d bytes (expected %d)", info.Size(), len(testdata)) 29 } 30 if info.Mode() != testmode { 31 t.Fatalf("Bad file mode: %o (expected %o)", info.Mode(), testmode) 32 } 33 } 34 35 func TestReadFile(t *testing.T) { 36 fs := memfs.Create() 37 38 f, _ := fs.OpenFile(testpath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, testmode) 39 f.Write(testdata) 40 f.Close() 41 42 data, err := vfs.ReadFile(fs, testpath) 43 if err != nil { 44 t.Fatalf("ReadFile failed: %s", err) 45 } 46 if len(data) != len(testdata) { 47 t.Fatalf("Bad data length: %d bytes (expected %d)", len(data), len(testdata)) 48 } 49 50 _, err = vfs.ReadFile(fs, "/doesnt-exist.txt") 51 if err == nil { 52 t.Fatalf("ReadFile failed: expected error") 53 } 54 }