|
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