|
4 | 4 | "os" |
5 | 5 | "regexp" |
6 | 6 | "testing" |
| 7 | + "time" |
7 | 8 |
|
8 | 9 | "github.com/spf13/afero" |
9 | 10 | ) |
@@ -51,37 +52,55 @@ func TestCheckDefaultIgnore(t *testing.T) { |
51 | 52 | } |
52 | 53 | } |
53 | 54 |
|
| 55 | +type MockFileInfo struct { |
| 56 | + FileName string |
| 57 | + IsDirectory bool |
| 58 | +} |
| 59 | + |
| 60 | +func (mfi MockFileInfo) Name() string { return mfi.FileName } |
| 61 | +func (mfi MockFileInfo) Size() int64 { return int64(8) } |
| 62 | +func (mfi MockFileInfo) Mode() os.FileMode { return os.ModePerm } |
| 63 | +func (mfi MockFileInfo) ModTime() time.Time { return time.Now() } |
| 64 | +func (mfi MockFileInfo) IsDir() bool { return mfi.IsDirectory } |
| 65 | +func (mfi MockFileInfo) Sys() interface{} { return nil } |
| 66 | + |
54 | 67 | func TestCheckOptionMatch(t *testing.T) { |
55 | 68 | opts := &ClocOptions{} |
56 | | - if !checkOptionMatch("/", opts) { |
| 69 | + fi := MockFileInfo{FileName: "/", IsDirectory: true} |
| 70 | + if !checkOptionMatch("/", fi, opts) { |
57 | 71 | t.Errorf("invalid logic: renotmatchdir is nil") |
58 | 72 | } |
59 | 73 |
|
60 | 74 | opts.ReNotMatchDir = regexp.MustCompile("thisisdir-not-match") |
61 | | - if !checkOptionMatch("/thisisdir/one.go", opts) { |
| 75 | + fi = MockFileInfo{FileName: "one.go", IsDirectory: false} |
| 76 | + if !checkOptionMatch("/thisisdir/one.go", fi, opts) { |
62 | 77 | t.Errorf("invalid logic: renotmatchdir is nil") |
63 | 78 | } |
64 | 79 |
|
65 | 80 | opts.ReNotMatchDir = regexp.MustCompile("thisisdir") |
66 | | - if checkOptionMatch("/thisisdir/one.go", opts) { |
| 81 | + fi = MockFileInfo{FileName: "one.go", IsDirectory: false} |
| 82 | + if checkOptionMatch("/thisisdir/one.go", fi, opts) { |
67 | 83 | t.Errorf("invalid logic: renotmatchdir is ignore") |
68 | 84 | } |
69 | 85 |
|
70 | 86 | opts = &ClocOptions{} |
71 | 87 | opts.ReMatchDir = regexp.MustCompile("thisisdir") |
72 | | - if !checkOptionMatch("/thisisdir/one.go", opts) { |
| 88 | + fi = MockFileInfo{FileName: "one.go", IsDirectory: false} |
| 89 | + if !checkOptionMatch("/thisisdir/one.go", fi, opts) { |
73 | 90 | t.Errorf("invalid logic: renotmatchdir is not ignore") |
74 | 91 | } |
75 | 92 |
|
76 | 93 | opts.ReMatchDir = regexp.MustCompile("thisisdir-not-match") |
77 | | - if checkOptionMatch("/thisisdir/one.go", opts) { |
| 94 | + fi = MockFileInfo{FileName: "one.go", IsDirectory: false} |
| 95 | + if checkOptionMatch("/thisisdir/one.go", fi, opts) { |
78 | 96 | t.Errorf("invalid logic: renotmatchdir is ignore") |
79 | 97 | } |
80 | 98 |
|
81 | 99 | opts = &ClocOptions{} |
82 | 100 | opts.ReNotMatchDir = regexp.MustCompile("thisisdir-not-match") |
83 | 101 | opts.ReMatchDir = regexp.MustCompile("thisisdir") |
84 | | - if !checkOptionMatch("/thisisdir/one.go", opts) { |
| 102 | + fi = MockFileInfo{FileName: "one.go", IsDirectory: false} |
| 103 | + if !checkOptionMatch("/thisisdir/one.go", fi, opts) { |
85 | 104 | t.Errorf("invalid logic: renotmatchdir is not ignore") |
86 | 105 | } |
87 | 106 | } |
0 commit comments