From 945708c5c599e4201645922aea239ad29af4a4a5 Mon Sep 17 00:00:00 2001 From: Julio Lopez Date: Mon, 18 Nov 2019 17:51:46 -0800 Subject: [PATCH] Add test for snapshot.Stats Also, set directory mode and default permissions in mockfs.NewDirectory --- internal/mockfs/mockfs.go | 1 + snapshot/stats_test.go | 40 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 snapshot/stats_test.go diff --git a/internal/mockfs/mockfs.go b/internal/mockfs/mockfs.go index b34dab958..103d0b8c5 100644 --- a/internal/mockfs/mockfs.go +++ b/internal/mockfs/mockfs.go @@ -227,6 +227,7 @@ func NewDirectory() *Directory { return &Directory{ entry: entry{ name: "", + mode: 0777 | os.ModeDir, }, } } diff --git a/snapshot/stats_test.go b/snapshot/stats_test.go new file mode 100644 index 000000000..d46545d95 --- /dev/null +++ b/snapshot/stats_test.go @@ -0,0 +1,40 @@ +package snapshot_test + +import ( + "testing" + + "github.com/kopia/kopia/fs" + "github.com/kopia/kopia/internal/mockfs" + "github.com/kopia/kopia/snapshot" +) + +func TestStats(t *testing.T) { + d := mockfs.NewDirectory() + f := d.AddFile("foo", []byte{'b', 'a', 'r', 'b', 'a', 'z'}, 0) + tcs := []struct { + entry fs.Entry + want snapshot.Stats + }{ + { + entry: d, + want: snapshot.Stats{ + ExcludedDirCount: 1, + }, + }, + { + entry: f, + want: snapshot.Stats{ + ExcludedFileCount: 1, + ExcludedTotalFileSize: f.Size(), + }, + }, + } + + for _, tc := range tcs { + got := snapshot.Stats{} + got.AddExcluded(tc.entry) + if got != tc.want { + t.Errorf("Stats do not match, got: %#v, want %#v", got, tc.want) + } + } +}