package testanalyze import ( "errors" "time" "b612.me/apps/b612/gdu/internal/common" "b612.me/apps/b612/gdu/pkg/analyze" "b612.me/apps/b612/gdu/pkg/fs" "b612.me/apps/b612/gdu/pkg/remove" ) // MockedAnalyzer returns dir with files with different size exponents type MockedAnalyzer struct{} // AnalyzeDir returns dir with files with different size exponents func (a *MockedAnalyzer) AnalyzeDir( path string, ignore common.ShouldDirBeIgnored, enableGC bool, ) fs.Item { dir := &analyze.Dir{ File: &analyze.File{ Name: "test_dir", Usage: 1e12 + 1, Size: 1e12 + 2, Mtime: time.Date(2021, 8, 27, 22, 23, 24, 0, time.UTC), }, BasePath: ".", ItemCount: 12, } dir2 := &analyze.Dir{ File: &analyze.File{ Name: "aaa", Usage: 1e12 + 1, Size: 1e12 + 2, Mtime: time.Date(2021, 8, 27, 22, 23, 27, 0, time.UTC), Parent: dir, }, } dir3 := &analyze.Dir{ File: &analyze.File{ Name: "bbb", Usage: 1e9 + 1, Size: 1e9 + 2, Mtime: time.Date(2021, 8, 27, 22, 23, 26, 0, time.UTC), Parent: dir, }, } dir4 := &analyze.Dir{ File: &analyze.File{ Name: "ccc", Usage: 1e6 + 1, Size: 1e6 + 2, Mtime: time.Date(2021, 8, 27, 22, 23, 25, 0, time.UTC), Parent: dir, }, } file := &analyze.File{ Name: "ddd", Usage: 1e3 + 1, Size: 1e3 + 2, Mtime: time.Date(2021, 8, 27, 22, 23, 24, 0, time.UTC), Parent: dir, } dir.Files = fs.Files{dir2, dir3, dir4, file} return dir } // GetProgressChan returns always Done func (a *MockedAnalyzer) GetProgressChan() chan common.CurrentProgress { return make(chan common.CurrentProgress) } // GetDone returns always Done func (a *MockedAnalyzer) GetDone() common.SignalGroup { c := make(common.SignalGroup) defer c.Broadcast() return c } // ResetProgress does nothing func (a *MockedAnalyzer) ResetProgress() {} // SetFollowSymlinks does nothing func (a *MockedAnalyzer) SetFollowSymlinks(v bool) {} // SetShowAnnexedSize does nothing func (a *MockedAnalyzer) SetShowAnnexedSize(v bool) {} // ItemFromDirWithErr returns error func ItemFromDirWithErr(dir, file fs.Item) error { return errors.New("Failed") } // ItemFromDirWithSleep returns error func ItemFromDirWithSleep(dir, file fs.Item) error { time.Sleep(time.Millisecond * 600) return remove.ItemFromDir(dir, file) } // ItemFromDirWithSleepAndErr returns error func ItemFromDirWithSleepAndErr(dir, file fs.Item) error { time.Sleep(time.Millisecond * 600) return errors.New("Failed") }