130 lines
2.9 KiB
Go
130 lines
2.9 KiB
Go
package housekeeper
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestCleanupOneMap(t *testing.T) {
|
|
expectRemove := []*CachedBeatmap{
|
|
&CachedBeatmap{
|
|
ID: 1,
|
|
lastRequested: time.Date(2017, 4, 5, 15, 5, 3, 0, time.UTC),
|
|
fileSize: 15,
|
|
isDownloaded: true,
|
|
},
|
|
}
|
|
expectRemain := []*CachedBeatmap{
|
|
&CachedBeatmap{
|
|
ID: 2,
|
|
lastRequested: time.Date(2017, 4, 10, 15, 5, 3, 0, time.UTC),
|
|
fileSize: 15,
|
|
isDownloaded: true,
|
|
},
|
|
&CachedBeatmap{
|
|
ID: 3,
|
|
lastRequested: time.Date(2017, 4, 15, 15, 5, 3, 0, time.UTC),
|
|
fileSize: 15,
|
|
isDownloaded: true,
|
|
},
|
|
&CachedBeatmap{
|
|
ID: 4,
|
|
lastRequested: time.Date(2017, 4, 20, 15, 5, 3, 0, time.UTC),
|
|
fileSize: 15,
|
|
isDownloaded: true,
|
|
},
|
|
}
|
|
|
|
h := New()
|
|
h.MaxSize = 50
|
|
h.state = append(expectRemain, expectRemove...)
|
|
h.dryRun = make([]*CachedBeatmap, 0)
|
|
|
|
start := time.Now()
|
|
h.cleanUp()
|
|
t.Log("cleanup took", time.Since(start))
|
|
|
|
if !reflect.DeepEqual(expectRemain, h.state) {
|
|
t.Errorf("Want %v got %v", expectRemain, h.state)
|
|
}
|
|
if !reflect.DeepEqual(expectRemove, h.dryRun) {
|
|
t.Errorf("Want %v got %v", expectRemove, h.dryRun)
|
|
}
|
|
}
|
|
|
|
func TestCleanupNoMaps(t *testing.T) {
|
|
expectRemove := []*CachedBeatmap{}
|
|
expectRemain := []*CachedBeatmap{
|
|
&CachedBeatmap{
|
|
ID: 1,
|
|
lastRequested: time.Date(2017, 4, 10, 15, 5, 3, 0, time.UTC),
|
|
fileSize: 10,
|
|
isDownloaded: true,
|
|
},
|
|
}
|
|
|
|
h := New()
|
|
h.MaxSize = 10
|
|
h.state = append(expectRemain, expectRemove...)
|
|
h.dryRun = make([]*CachedBeatmap, 0)
|
|
|
|
start := time.Now()
|
|
h.cleanUp()
|
|
t.Log("cleanup took", time.Since(start))
|
|
|
|
if !reflect.DeepEqual(expectRemain, h.state) {
|
|
t.Errorf("Want %v got %v", expectRemain, h.state)
|
|
}
|
|
if !reflect.DeepEqual(expectRemove, h.dryRun) {
|
|
t.Errorf("Want %v got %v", expectRemove, h.dryRun)
|
|
}
|
|
}
|
|
|
|
func TestCleanupEmptyBeatmaps(t *testing.T) {
|
|
expectRemove := []*CachedBeatmap{
|
|
&CachedBeatmap{
|
|
ID: 1,
|
|
lastRequested: time.Date(2017, 4, 10, 15, 5, 3, 0, time.UTC),
|
|
fileSize: 10,
|
|
isDownloaded: true,
|
|
},
|
|
}
|
|
expectRemain := []*CachedBeatmap{
|
|
&CachedBeatmap{
|
|
ID: 2,
|
|
lastRequested: time.Date(2017, 4, 5, 15, 5, 3, 0, time.UTC),
|
|
fileSize: 0,
|
|
isDownloaded: true,
|
|
},
|
|
&CachedBeatmap{
|
|
ID: 3,
|
|
lastRequested: time.Date(2017, 4, 4, 15, 5, 3, 0, time.UTC),
|
|
fileSize: 0,
|
|
isDownloaded: true,
|
|
},
|
|
&CachedBeatmap{
|
|
ID: 4,
|
|
lastRequested: time.Date(2017, 4, 3, 15, 5, 3, 0, time.UTC),
|
|
fileSize: 0,
|
|
isDownloaded: true,
|
|
},
|
|
}
|
|
|
|
h := New()
|
|
h.MaxSize = 5
|
|
h.state = append(expectRemain, expectRemove...)
|
|
h.dryRun = make([]*CachedBeatmap, 0)
|
|
|
|
start := time.Now()
|
|
h.cleanUp()
|
|
t.Log("cleanup took", time.Since(start))
|
|
|
|
if !reflect.DeepEqual(expectRemain, h.state) {
|
|
t.Errorf("Want %v got %v", expectRemain, h.state)
|
|
}
|
|
if !reflect.DeepEqual(expectRemove, h.dryRun) {
|
|
t.Errorf("Want %v got %v", expectRemove, h.dryRun)
|
|
}
|
|
}
|