contentserver/repo/history_test.go
2017-11-01 13:38:36 +01:00

82 lines
1.9 KiB
Go

package repo
import (
"bytes"
"fmt"
"io/ioutil"
"os"
"testing"
"time"
)
func testHistory() *history {
tempDir, err := ioutil.TempDir(os.TempDir(), "contentserver-history-test")
if err != nil {
panic(err)
}
return newHistory(tempDir)
}
func TestHistoryCurrent(t *testing.T) {
h := testHistory()
test := []byte("test")
h.add(test)
current, err := h.getCurrent()
if err != nil {
t.Fatal(err)
}
if bytes.Compare(current, test) != 0 {
t.Fatal(fmt.Sprintf("expected %q, got %q", string(test), string(current)))
}
}
func TestHistoryCleanup(t *testing.T) {
h := testHistory()
for i := 0; i < 50; i++ {
h.add([]byte(fmt.Sprint(i)))
time.Sleep(time.Millisecond * 5)
}
h.cleanup()
files, err := h.getHistory()
if err != nil {
t.Fatal(err)
}
if len(files) != maxHistoryVersions {
t.Fatal("history too long", len(files), "instead of", maxHistoryVersions)
}
}
func TestHistoryOrder(t *testing.T) {
h := testHistory()
h.varDir = "testdata/order"
files, err := h.getHistory()
if err != nil {
t.Fatal("error not expected")
}
assertStringEqual(t, "testdata/order/contentserver-repo-current.json", files[0])
assertStringEqual(t, "testdata/order/contentserver-repo-2017-10-23.json", files[1])
assertStringEqual(t, "testdata/order/contentserver-repo-2017-10-22.json", files[2])
assertStringEqual(t, "testdata/order/contentserver-repo-2017-10-21.json", files[3])
}
func TestGetFilesForCleanup(t *testing.T) {
h := testHistory()
h.varDir = "testdata/order"
files, err := h.getFilesForCleanup(2)
if err != nil {
t.Fatal("error not expected")
}
assertStringEqual(t, "testdata/order/contentserver-repo-2017-10-22.json", files[0])
assertStringEqual(t, "testdata/order/contentserver-repo-2017-10-21.json", files[1])
}
func assertStringEqual(t *testing.T, expected, actual string) {
if expected != actual {
t.Errorf("expected string %s differs from the actual %s", expected, actual)
}
}