1
0
Fork 0
mirror of https://github.com/Luzifer/ansible-role-version.git synced 2024-12-23 19:11:20 +00:00
ansible-role-version/vendor/gopkg.in/src-d/go-billy.v4/test/mock.go
Knut Ahlers 209b813c5b
Update dependencies
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2018-03-19 18:16:10 +01:00

136 lines
2.9 KiB
Go

package test
import (
"bytes"
"os"
"path"
"path/filepath"
"gopkg.in/src-d/go-billy.v4"
)
type BasicMock struct {
CreateArgs []string
OpenArgs []string
OpenFileArgs [][3]interface{}
StatArgs []string
RenameArgs [][2]string
RemoveArgs []string
JoinArgs [][]string
}
func (fs *BasicMock) Create(filename string) (billy.File, error) {
fs.CreateArgs = append(fs.CreateArgs, filename)
return &FileMock{name: filename}, nil
}
func (fs *BasicMock) Open(filename string) (billy.File, error) {
fs.OpenArgs = append(fs.OpenArgs, filename)
return &FileMock{name: filename}, nil
}
func (fs *BasicMock) OpenFile(filename string, flag int, mode os.FileMode) (billy.File, error) {
fs.OpenFileArgs = append(fs.OpenFileArgs, [3]interface{}{filename, flag, mode})
return &FileMock{name: filename}, nil
}
func (fs *BasicMock) Stat(filename string) (os.FileInfo, error) {
fs.StatArgs = append(fs.StatArgs, filename)
return nil, nil
}
func (fs *BasicMock) Rename(target, link string) error {
fs.RenameArgs = append(fs.RenameArgs, [2]string{target, link})
return nil
}
func (fs *BasicMock) Remove(filename string) error {
fs.RemoveArgs = append(fs.RemoveArgs, filename)
return nil
}
func (fs *BasicMock) Join(elem ...string) string {
fs.JoinArgs = append(fs.JoinArgs, elem)
return path.Join(elem...)
}
type TempFileMock struct {
BasicMock
TempFileArgs [][2]string
}
func (fs *TempFileMock) TempFile(dir, prefix string) (billy.File, error) {
fs.TempFileArgs = append(fs.TempFileArgs, [2]string{dir, prefix})
return &FileMock{name: "/tmp/hardcoded/mock/temp"}, nil
}
type DirMock struct {
BasicMock
ReadDirArgs []string
MkdirAllArgs [][2]interface{}
}
func (fs *DirMock) ReadDir(path string) ([]os.FileInfo, error) {
fs.ReadDirArgs = append(fs.ReadDirArgs, path)
return nil, nil
}
func (fs *DirMock) MkdirAll(filename string, perm os.FileMode) error {
fs.MkdirAllArgs = append(fs.MkdirAllArgs, [2]interface{}{filename, perm})
return nil
}
type SymlinkMock struct {
BasicMock
LstatArgs []string
SymlinkArgs [][2]string
ReadlinkArgs []string
}
func (fs *SymlinkMock) Lstat(filename string) (os.FileInfo, error) {
fs.LstatArgs = append(fs.LstatArgs, filename)
return nil, nil
}
func (fs *SymlinkMock) Symlink(target, link string) error {
fs.SymlinkArgs = append(fs.SymlinkArgs, [2]string{target, link})
return nil
}
func (fs *SymlinkMock) Readlink(link string) (string, error) {
fs.ReadlinkArgs = append(fs.ReadlinkArgs, link)
return filepath.FromSlash(link), nil
}
type FileMock struct {
name string
bytes.Buffer
}
func (f *FileMock) Name() string {
return f.name
}
func (*FileMock) ReadAt(b []byte, off int64) (int, error) {
return 0, nil
}
func (*FileMock) Seek(offset int64, whence int) (int64, error) {
return 0, nil
}
func (*FileMock) Close() error {
return nil
}
func (*FileMock) Lock() error {
return nil
}
func (*FileMock) Unlock() error {
return nil
}
func (*FileMock) Truncate(size int64) error {
return nil
}