Basic mocks for kopia Entry and File (#307)
This commit is contained in:
parent
60ab132960
commit
e7a6d07c5b
93
src/internal/kopia/mockkopia/fs.go
Normal file
93
src/internal/kopia/mockkopia/fs.go
Normal file
@ -0,0 +1,93 @@
|
||||
package mockkopia
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"io"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/kopia/kopia/fs"
|
||||
)
|
||||
|
||||
const (
|
||||
DefaultPermissions os.FileMode = 0o777
|
||||
)
|
||||
|
||||
type MockEntry struct {
|
||||
EntryName string
|
||||
EntryMode os.FileMode
|
||||
EntrySize int64
|
||||
EntryModTime time.Time
|
||||
EntryOwner fs.OwnerInfo
|
||||
EntryDevice fs.DeviceInfo
|
||||
}
|
||||
|
||||
func (me MockEntry) Name() string {
|
||||
return me.EntryName
|
||||
}
|
||||
|
||||
func (me MockEntry) IsDir() bool {
|
||||
return me.EntryMode.IsDir()
|
||||
}
|
||||
|
||||
func (me MockEntry) Mode() os.FileMode {
|
||||
return me.EntryMode
|
||||
}
|
||||
|
||||
func (me MockEntry) ModTime() time.Time {
|
||||
return me.EntryModTime
|
||||
}
|
||||
|
||||
func (me MockEntry) Size() int64 {
|
||||
return me.EntrySize
|
||||
}
|
||||
|
||||
func (me MockEntry) Sys() any {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (me MockEntry) Owner() fs.OwnerInfo {
|
||||
return me.EntryOwner
|
||||
}
|
||||
|
||||
func (me MockEntry) Device() fs.DeviceInfo {
|
||||
return me.EntryDevice
|
||||
}
|
||||
|
||||
func (me MockEntry) LocalFilesystemPath() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (me *MockEntry) Close() {
|
||||
}
|
||||
|
||||
type mockReader struct {
|
||||
e fs.Entry
|
||||
io.ReadSeeker
|
||||
}
|
||||
|
||||
func (mr mockReader) Entry() (fs.Entry, error) {
|
||||
return mr.e, nil
|
||||
}
|
||||
|
||||
func (mr *mockReader) Close() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
type MockFile struct {
|
||||
fs.Entry
|
||||
OpenErr error
|
||||
Data []byte
|
||||
}
|
||||
|
||||
func (mf *MockFile) Open(context.Context) (fs.Reader, error) {
|
||||
if mf.OpenErr != nil {
|
||||
return nil, mf.OpenErr
|
||||
}
|
||||
|
||||
return &mockReader{
|
||||
e: mf.Entry,
|
||||
ReadSeeker: bytes.NewReader(mf.Data),
|
||||
}, nil
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user