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