Add fake filesystem for test to avoid temporal files on the local filesystem

This commit is contained in:
Manuel de Brito Fontes 2017-11-22 10:40:54 -03:00
parent 14b5259b0f
commit 18d6573981
15 changed files with 633 additions and 89 deletions

View file

@ -24,8 +24,12 @@ import (
"gopkg.in/fsnotify.v1"
)
// FileWatcher defines a watch over a file
type FileWatcher struct {
type FileWatcher interface {
Close() error
}
// OSFileWatcher defines a watch over a file
type OSFileWatcher struct {
file string
watcher *fsnotify.Watcher
// onEvent callback to be invoked after the file being watched changes
@ -34,7 +38,7 @@ type FileWatcher struct {
// NewFileWatcher creates a new FileWatcher
func NewFileWatcher(file string, onEvent func()) (FileWatcher, error) {
fw := FileWatcher{
fw := OSFileWatcher{
file: file,
onEvent: onEvent,
}
@ -43,12 +47,12 @@ func NewFileWatcher(file string, onEvent func()) (FileWatcher, error) {
}
// Close ends the watch
func (f *FileWatcher) Close() error {
func (f OSFileWatcher) Close() error {
return f.watcher.Close()
}
// watch creates a fsnotify watcher for a file and create of write events
func (f *FileWatcher) watch() error {
func (f *OSFileWatcher) watch() error {
watcher, err := fsnotify.NewWatcher()
if err != nil {
return err