mirror of
https://github.com/foomo/contentserver.git
synced 2025-10-16 12:25:44 +00:00
82 lines
1.9 KiB
Go
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) {
|
|
var (
|
|
h = testHistory()
|
|
test = []byte("test")
|
|
)
|
|
h.add(test)
|
|
current, err := h.getCurrent()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !bytes.Equal(current, test) {
|
|
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)
|
|
}
|
|
}
|