4 "github.com/stretchr/testify/mock"
10 type FileStore interface {
11 Create(name string) (*os.File, error)
12 Mkdir(name string, perm os.FileMode) error
13 Open(name string) (*os.File, error)
14 OpenFile(name string, flag int, perm fs.FileMode) (*os.File, error)
15 Remove(name string) error
16 RemoveAll(path string) error
17 Rename(oldpath string, newpath string) error
18 Stat(name string) (fs.FileInfo, error)
19 Symlink(oldname, newname string) error
20 WriteFile(name string, data []byte, perm fs.FileMode) error
21 ReadFile(name string) ([]byte, error)
24 type OSFileStore struct{}
26 func (fs *OSFileStore) Mkdir(name string, perm os.FileMode) error {
27 return os.Mkdir(name, perm)
30 func (fs *OSFileStore) Stat(name string) (os.FileInfo, error) {
34 func (fs *OSFileStore) Open(name string) (*os.File, error) {
38 func (fs *OSFileStore) Symlink(oldname, newname string) error {
39 return os.Symlink(oldname, newname)
42 func (fs *OSFileStore) RemoveAll(name string) error {
43 return os.RemoveAll(name)
46 func (fs *OSFileStore) Remove(name string) error {
47 return os.Remove(name)
50 func (fs *OSFileStore) Create(name string) (*os.File, error) {
51 return os.Create(name)
54 func (fs *OSFileStore) WriteFile(name string, data []byte, perm fs.FileMode) error {
55 return os.WriteFile(name, data, perm)
58 func (fs *OSFileStore) Rename(oldpath string, newpath string) error {
59 return os.Rename(oldpath, newpath)
62 func (fs *OSFileStore) ReadFile(name string) ([]byte, error) {
63 return os.ReadFile(name)
66 func (fs *OSFileStore) OpenFile(name string, flag int, perm fs.FileMode) (*os.File, error) {
67 return os.OpenFile(name, flag, perm)
70 type MockFileStore struct {
74 func (mfs *MockFileStore) Mkdir(name string, perm os.FileMode) error {
75 args := mfs.Called(name, perm)
79 func (mfs *MockFileStore) Stat(name string) (os.FileInfo, error) {
80 args := mfs.Called(name)
81 if args.Get(0) == nil {
82 return nil, args.Error(1)
85 return args.Get(0).(os.FileInfo), args.Error(1)
88 func (mfs *MockFileStore) Open(name string) (*os.File, error) {
89 args := mfs.Called(name)
90 return args.Get(0).(*os.File), args.Error(1)
93 func (mfs *MockFileStore) OpenFile(name string, flag int, perm fs.FileMode) (*os.File, error) {
94 args := mfs.Called(name, flag, perm)
95 return args.Get(0).(*os.File), args.Error(1)
98 func (mfs *MockFileStore) Symlink(oldname, newname string) error {
99 args := mfs.Called(oldname, newname)
103 func (mfs *MockFileStore) RemoveAll(name string) error {
104 args := mfs.Called(name)
108 func (mfs *MockFileStore) Remove(name string) error {
109 args := mfs.Called(name)
113 func (mfs *MockFileStore) Create(name string) (*os.File, error) {
114 args := mfs.Called(name)
115 return args.Get(0).(*os.File), args.Error(1)
118 func (mfs *MockFileStore) WriteFile(name string, data []byte, perm fs.FileMode) error {
119 args := mfs.Called(name, data, perm)
123 func (mfs *MockFileStore) Rename(oldpath, newpath string) error {
124 args := mfs.Called(oldpath, newpath)
128 func (mfs *MockFileStore) ReadFile(name string) ([]byte, error) {
129 args := mfs.Called(name)
130 return args.Get(0).([]byte), args.Error(1)
133 type MockFileInfo struct {
137 func (mfi *MockFileInfo) Name() string {
139 return args.String(0)
142 func (mfi *MockFileInfo) Size() int64 {
144 return args.Get(0).(int64)
147 func (mfi *MockFileInfo) Mode() fs.FileMode {
149 return args.Get(0).(fs.FileMode)
152 func (mfi *MockFileInfo) ModTime() time.Time {
157 func (mfi *MockFileInfo) IsDir() bool {
162 func (mfi *MockFileInfo) Sys() interface{} {