57 lines
1.3 KiB
Go
57 lines
1.3 KiB
Go
package storage
|
|
|
|
import "io"
|
|
import "os"
|
|
import "path/filepath"
|
|
import "strings"
|
|
import "testing"
|
|
|
|
func TestFileStoreSaveAndOpen(t *testing.T) {
|
|
var fs FileStore
|
|
var content string
|
|
var path string
|
|
var n int64
|
|
var err error
|
|
var file *os.File
|
|
var data []byte
|
|
fs = FileStore{BaseDir: filepath.Join(t.TempDir(), "uploads")}
|
|
content = "hello storage"
|
|
path, n, err = fs.Save("a.txt", strings.NewReader(content))
|
|
if err != nil {
|
|
t.Fatalf("Save() error: %v", err)
|
|
}
|
|
if n != int64(len(content)) {
|
|
t.Fatalf("unexpected bytes copied: got=%d want=%d", n, len(content))
|
|
}
|
|
file, err = fs.Open(path)
|
|
if err != nil {
|
|
t.Fatalf("Open() error: %v", err)
|
|
}
|
|
defer file.Close()
|
|
data, err = io.ReadAll(file)
|
|
if err != nil {
|
|
t.Fatalf("ReadAll() error: %v", err)
|
|
}
|
|
if string(data) != content {
|
|
t.Fatalf("unexpected content: got=%q want=%q", string(data), content)
|
|
}
|
|
}
|
|
|
|
func TestFileStoreEnsureCreatesDirectory(t *testing.T) {
|
|
var fs FileStore
|
|
var err error
|
|
var st os.FileInfo
|
|
fs = FileStore{BaseDir: filepath.Join(t.TempDir(), "x", "y", "z")}
|
|
err = fs.Ensure()
|
|
if err != nil {
|
|
t.Fatalf("Ensure() error: %v", err)
|
|
}
|
|
st, err = os.Stat(fs.BaseDir)
|
|
if err != nil {
|
|
t.Fatalf("stat basedir: %v", err)
|
|
}
|
|
if !st.IsDir() {
|
|
t.Fatalf("base path is not directory")
|
|
}
|
|
}
|