vfs/mockfile.go

44 lines
608 B
Go

package vfs
import (
"io/fs"
"os"
"time"
)
type MockFile struct {
name string
mode os.FileMode
modified time.Time
open bool
size int64
}
func (f *MockFile) Stat() (fs.FileInfo, error) {
if f.open {
return &fileInfo{
name: f.name,
size: f.size,
modified: f.modified,
mode: f.mode,
}, nil
}
return nil, fs.ErrClosed
}
func (f *MockFile) Read(data []byte) (int, error) {
if f.open {
data = []byte{}
return 0, nil
}
return 0, fs.ErrClosed
}
func (f *MockFile) Close() error {
if f.open {
f.open = false
return nil
}
return fs.ErrClosed
}