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)
 | 
						|
	}
 | 
						|
}
 |