44 lines
608 B
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
|
|
}
|