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  }