github.com/kubeshop/testkube@v1.17.23/pkg/filesystem/mock_fileinfo.go (about) 1 package filesystem 2 3 import ( 4 "os" 5 "time" 6 ) 7 8 // MockDirEntry implements os.DirEntry interface for mocking in tests. 9 type MockDirEntry struct { 10 FName string 11 FIsDir bool 12 } 13 14 // Name returns the mocked name of the directory entry. 15 func (m *MockDirEntry) Name() string { 16 return m.FName 17 } 18 19 // IsDir returns the mocked directory flag. 20 func (m *MockDirEntry) IsDir() bool { 21 return m.FIsDir 22 } 23 24 // Type returns the mocked file mode. 25 func (m *MockDirEntry) Type() os.FileMode { 26 if m.FIsDir { 27 return os.ModeDir 28 } 29 return 0 30 } 31 32 // Info returns the mocked file info. 33 func (m *MockDirEntry) Info() (os.FileInfo, error) { 34 return &MockFileInfo{ 35 FName: m.FName, 36 FIsDir: true, 37 }, nil 38 } 39 40 type MockFileInfo struct { 41 FName string 42 FSize int64 43 FMode os.FileMode 44 FModTime time.Time 45 FIsDir bool 46 } 47 48 func (m *MockFileInfo) Name() string { 49 return m.FName 50 } 51 52 func (m *MockFileInfo) Size() int64 { 53 return m.FSize 54 } 55 56 func (m *MockFileInfo) Mode() os.FileMode { 57 return m.FMode 58 } 59 60 func (m *MockFileInfo) ModTime() time.Time { 61 return m.FModTime 62 } 63 64 func (m *MockFileInfo) IsDir() bool { 65 return m.FIsDir 66 } 67 68 func (m *MockFileInfo) Sys() interface{} { 69 return nil 70 }