From 0f79383af2cc71d69ec401b42b7da6be7c0b5aeb Mon Sep 17 00:00:00 2001 From: Acconut Date: Thu, 12 Feb 2015 16:06:15 +0100 Subject: [PATCH] add test for filestore --- .travis.yml | 1 + filestore/filestore_test.go | 73 +++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 filestore/filestore_test.go diff --git a/.travis.yml b/.travis.yml index 8d8f82c..b70cc6a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,3 +15,4 @@ before_install: script: - go test -v -coverprofile=cover.out || go test -v +- go test -v ./filestore -coverprofile=cover.out || go test -v ./filestore diff --git a/filestore/filestore_test.go b/filestore/filestore_test.go new file mode 100644 index 0000000..a13d807 --- /dev/null +++ b/filestore/filestore_test.go @@ -0,0 +1,73 @@ +package filestore + +import ( + "io/ioutil" + "strings" + "testing" +) + +func TestFilestore(t *testing.T) { + tmp, err := ioutil.TempDir("", "tusd-filestore-") + if err != nil { + t.Fatal(err) + } + + store := FileStore{tmp} + + // Create new upload + id, err := store.NewUpload(42, map[string]string{ + "hello": "world", + }) + if err != nil { + t.Fatal(err) + } + if id == "" { + t.Errorf("id must not be empty") + } + + // Check info without writing + info, err := store.GetInfo(id) + if err != nil { + t.Fatal(err) + } + if info.Size != 42 { + t.Errorf("expected size to be 42") + } + if info.Offset != 0 { + t.Errorf("expected offset to be 0") + } + if len(info.MetaData) != 1 || info.MetaData["hello"] != "world" { + t.Errorf("expected metadata to have one value") + } + + // Write data to upload + err = store.WriteChunk(id, 0, strings.NewReader("hello world")) + if err != nil { + t.Fatal(err) + } + + // Check new offset + info, err = store.GetInfo(id) + if err != nil { + t.Fatal(err) + } + if info.Size != 42 { + t.Errorf("expected size to be 42") + } + if info.Offset != int64(len("hello world")) { + t.Errorf("expected offset to be 0") + } + + // Read content + reader, err := store.GetReader(id) + if err != nil { + t.Fatal(err) + } + content, err := ioutil.ReadAll(reader) + if err != nil { + t.Fatal(err) + } + if string(content) != "hello world" { + t.Errorf("expected content to be 'hello world'") + } +}