]> git.r.bdr.sh - rbdr/mobius/blob - hotline/file_store.go
Fix "No Agreement" behavior for 1.2.3 clients
[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 }
85 return args.Get(0).(os.FileInfo), args.Error(1)
86 }
87
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)
91 }
92
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)
96 }
97
98 func (mfs *MockFileStore) Symlink(oldname, newname string) error {
99 args := mfs.Called(oldname, newname)
100 return args.Error(0)
101 }
102
103 func (mfs *MockFileStore) RemoveAll(name string) error {
104 args := mfs.Called(name)
105 return args.Error(0)
106 }
107
108 func (mfs *MockFileStore) Remove(name string) error {
109 args := mfs.Called(name)
110 return args.Error(0)
111 }
112
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)
116 }
117
118 func (mfs *MockFileStore) WriteFile(name string, data []byte, perm fs.FileMode) error {
119 args := mfs.Called(name, data, perm)
120 return args.Error(0)
121 }
122
123 func (mfs *MockFileStore) Rename(oldpath, newpath string) error {
124 args := mfs.Called(oldpath, newpath)
125 return args.Error(0)
126 }
127
128 func (mfs *MockFileStore) ReadFile(name string) ([]byte, error) {
129 args := mfs.Called(name)
130 return args.Get(0).([]byte), args.Error(1)
131 }
132
133 type MockFileInfo struct {
134 mock.Mock
135 }
136
137 func (mfi *MockFileInfo) Name() string {
138 args := mfi.Called()
139 return args.String(0)
140 }
141
142 func (mfi *MockFileInfo) Size() int64 {
143 args := mfi.Called()
144 return args.Get(0).(int64)
145 }
146
147 func (mfi *MockFileInfo) Mode() fs.FileMode {
148 args := mfi.Called()
149 return args.Get(0).(fs.FileMode)
150 }
151
152 func (mfi *MockFileInfo) ModTime() time.Time {
153 _ = mfi.Called()
154 return time.Now()
155 }
156
157 func (mfi *MockFileInfo) IsDir() bool {
158 args := mfi.Called()
159 return args.Bool(0)
160 }
161
162 func (mfi *MockFileInfo) Sys() interface{} {
163 _ = mfi.Called()
164 return nil
165 }