-
Notifications
You must be signed in to change notification settings - Fork 2
/
tree_test.go
72 lines (59 loc) · 1.38 KB
/
tree_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package main
import (
"os"
"testing"
"time"
)
// fileInfo for testing the tree
type fileInfo struct {
name string
size int64
mode os.FileMode
modTime time.Time
}
func (f fileInfo) Name() string {
return f.name
}
func (f fileInfo) Size() int64 {
return f.size
}
func (f fileInfo) Mode() os.FileMode {
return f.mode
}
func (f fileInfo) ModTime() time.Time {
return f.modTime
}
func (f fileInfo) IsDir() bool {
return f.mode.IsDir()
}
func (f fileInfo) Sys() interface{} {
return nil
}
func TestAddEntryIncrementsDirectoryAndFileCounts(t *testing.T) {
pano := time.Now()
fileMode := os.FileMode(0644)
files := []fileInfo{
fileInfo{"dir1", 1024, os.ModeDir, pano},
fileInfo{"dir2", 1024, os.ModeDir, pano},
fileInfo{"dir3", 1024, os.ModeDir, pano},
fileInfo{"file1", 1024, fileMode, pano},
fileInfo{"file2", 1024, fileMode, pano},
fileInfo{"file3", 1024, fileMode, pano},
fileInfo{"file4", 1024, fileMode, pano},
}
tree := &Tree{
Root: NewNode("/", pano.Year(), pano.Month(), pano.Day()),
MaxDepth: 1,
directoryCount: 0,
fileCount: 0,
}
for _, f := range files {
tree.AddEntry(f)
}
if tree.Directories() != 3 {
t.Errorf("Tree's Directories() is incorrect. Got '%d', Expected '%d'", tree.Directories(), 3)
}
if tree.Files() != 4 {
t.Errorf("Tree's Files() is incorrect. Got '%d', Expected '%d'", tree.Files(), 4)
}
}