github.com/AndrusGerman/vfs@v1.0.1/ioutil_test.go (about)

     1  package vfs_test
     2  
     3  import (
     4  	"bytes"
     5  	"os"
     6  	"testing"
     7  
     8  	"github.com/AndrusGerman/vfs"
     9  	"github.com/AndrusGerman/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  }