Implement streaming functions for local backend

This commit is contained in:
Alexander Neumann 2015-02-11 19:50:29 +01:00
parent 64f7b4e5e9
commit 0a45ec1d3a
2 changed files with 93 additions and 0 deletions

View file

@ -1,6 +1,7 @@
package backend_test
import (
"bytes"
"flag"
"fmt"
"io/ioutil"
@ -80,8 +81,34 @@ func testBackend(b *backend.Local, t *testing.T) {
// compare content
equals(t, test.data, string(buf))
// compare content again via stream function
rd, err := b.GetReader(tpe, id)
ok(t, err)
buf, err = ioutil.ReadAll(rd)
ok(t, err)
equals(t, test.data, string(buf))
}
// test stream functions with first file
test := TestStrings[0]
id, err := backend.ParseID(test.id)
ok(t, err)
// create with reader, should return error
_, err = b.CreateFrom(tpe, bytes.NewReader([]byte(test.data)))
assert(t, err == backend.ErrAlreadyPresent,
"expected ErrAlreadyPresent, got %v", err)
// remove and recreate
err = b.Remove(tpe, id)
ok(t, err)
id2, err := b.CreateFrom(tpe, bytes.NewReader([]byte(test.data)))
ok(t, err)
assert(t, id.Equal(id2),
"expected id %v, got %v", id, id2)
// list items
IDs := backend.IDs{}