]> git.r.bdr.sh - rbdr/mobius/blob - hotline/file_store.go
Upload example dialog
[rbdr/mobius] / hotline / file_store.go
1 package hotline
2
3 import (
4 "github.com/stretchr/testify/mock"
5 "io/fs"
6 "os"
7 "time"
8 )
9
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)
22 }
23
24 type OSFileStore struct{}
25
26 func (fs *OSFileStore) Mkdir(name string, perm os.FileMode) error {
27 return os.Mkdir(name, perm)
28 }
29
30 func (fs *OSFileStore) Stat(name string) (os.FileInfo, error) {
31 return os.Stat(name)
32 }
33
34 func (fs *OSFileStore) Open(name string) (*os.File, error) {
35 return os.Open(name)
36 }
37
38 func (fs *OSFileStore) Symlink(oldname, newname string) error {
39 return os.Symlink(oldname, newname)
40 }
41
42 func (fs *OSFileStore) RemoveAll(name string) error {
43 return os.RemoveAll(name)
44 }
45
46 func (fs *OSFileStore) Remove(name string) error {
47 return os.Remove(name)
48 }
49
50 func (fs *OSFileStore) Create(name string) (*os.File, error) {
51 return os.Create(name)
52 }
53
54 func (fs *OSFileStore) WriteFile(name string, data []byte, perm fs.FileMode) error {
55 return os.WriteFile(name, data, perm)
56 }
57
58 func (fs *OSFileStore) Rename(oldpath string, newpath string) error {
59 return os.Rename(oldpath, newpath)
60 }
61
62 func (fs *OSFileStore) ReadFile(name string) ([]byte, error) {
63 return os.ReadFile(name)
64 }
65
66 func (fs *OSFileStore) OpenFile(name string, flag int, perm fs.FileMode) (*os.File, error) {
67 return os.OpenFile(name, flag, perm)
68 }
69
70 type MockFileStore struct {
71 mock.Mock
72 }
73
74 func (mfs *MockFileStore) Mkdir(name string, perm os.FileMode) error {
75 args := mfs.Called(name, perm)
76 return args.Error(0)
77 }
78
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)
83 }
84 return args.Get(0).(os.FileInfo), args.Error(1)
85 }
86
87 func (mfs *MockFileStore) Open(name string) (*os.File, error) {
88 args := mfs.Called(name)
89 return args.Get(0).(*os.File), args.Error(1)
90 }
91
92 func (mfs *MockFileStore) OpenFile(name string, flag int, perm fs.FileMode) (*os.File, error) {
93 args := mfs.Called(name, flag, perm)
94 return args.Get(0).(*os.File), args.Error(1)
95 }
96
97 func (mfs *MockFileStore) Symlink(oldname, newname string) error {
98 args := mfs.Called(oldname, newname)
99 return args.Error(0)
100 }
101
102 func (mfs *MockFileStore) RemoveAll(name string) error {
103 args := mfs.Called(name)
104 return args.Error(0)
105 }
106
107 func (mfs *MockFileStore) Remove(name string) error {
108 args := mfs.Called(name)
109 return args.Error(0)
110 }
111
112 func (mfs *MockFileStore) Create(name string) (*os.File, error) {
113 args := mfs.Called(name)
114 return args.Get(0).(*os.File), args.Error(1)
115 }
116
117 func (mfs *MockFileStore) WriteFile(name string, data []byte, perm fs.FileMode) error {
118 args := mfs.Called(name, data, perm)
119 return args.Error(0)
120 }
121
122 func (mfs *MockFileStore) Rename(oldpath, newpath string) error {
123 args := mfs.Called(oldpath, newpath)
124 return args.Error(0)
125 }
126
127 func (mfs *MockFileStore) ReadFile(name string) ([]byte, error) {
128 args := mfs.Called(name)
129 return args.Get(0).([]byte), args.Error(1)
130 }
131
132 type MockFileInfo struct {
133 mock.Mock
134 }
135
136 func (mfi *MockFileInfo) Name() string {
137 args := mfi.Called()
138 return args.String(0)
139 }
140
141 func (mfi *MockFileInfo) Size() int64 {
142 args := mfi.Called()
143 return args.Get(0).(int64)
144 }
145
146 func (mfi *MockFileInfo) Mode() fs.FileMode {
147 args := mfi.Called()
148 return args.Get(0).(fs.FileMode)
149 }
150
151 func (mfi *MockFileInfo) ModTime() time.Time {
152 _ = mfi.Called()
153 return time.Now()
154 }
155
156 func (mfi *MockFileInfo) IsDir() bool {
157 args := mfi.Called()
158 return args.Bool(0)
159 }
160
161 func (mfi *MockFileInfo) Sys() interface{} {
162 _ = mfi.Called()
163 return nil
164 }