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
|
||
|
}
|