github.com/hoffie/larasync@v0.0.0-20151025221940-0384d2bddcef/api/client/objects_test.go (about) 1 package client 2 3 import ( 4 "bytes" 5 "crypto/sha512" 6 "encoding/hex" 7 "io/ioutil" 8 9 . "gopkg.in/check.v1" 10 ) 11 12 type ObjectsClientTest struct { 13 BaseTest 14 data []byte 15 objectKey string 16 } 17 18 var _ = Suite(&ObjectsClientTest{ 19 BaseTest: newBaseTest(), 20 }) 21 22 func (t *ObjectsClientTest) SetUpTest(c *C) { 23 t.BaseTest.SetUpTest(c) 24 t.data = []byte("This is a testfile.") 25 26 h := sha512.New() 27 h.Write(t.data) 28 t.objectKey = hex.EncodeToString(h.Sum(nil)) 29 t.createRepository(c) 30 } 31 32 func (t *ObjectsClientTest) TestNotExisting(c *C) { 33 _, err := t.client.GetObject(t.objectKey) 34 c.Assert(err, NotNil) 35 } 36 37 func (t *ObjectsClientTest) TestExisting(c *C) { 38 repository := t.getRepository(c) 39 err := repository.AddObject(t.objectKey, bytes.NewReader(t.data)) 40 c.Assert(err, IsNil) 41 42 reader, err := t.client.GetObject(t.objectKey) 43 c.Assert(err, IsNil) 44 45 data, err := ioutil.ReadAll(reader) 46 c.Assert(err, IsNil) 47 c.Assert(data, DeepEquals, t.data) 48 } 49 50 func (t *ObjectsClientTest) TestConnError(c *C) { 51 t.server.Close() 52 _, err := t.client.GetObject(t.objectKey) 53 c.Assert(err, NotNil) 54 } 55 56 func (t *ObjectsClientTest) TestCreate(c *C) { 57 err := t.client.PutObject(t.objectKey, bytes.NewReader(t.data)) 58 c.Assert(err, IsNil) 59 60 repository := t.getRepository(c) 61 reader, err := repository.GetObjectData(t.objectKey) 62 c.Assert(err, IsNil) 63 defer reader.Close() 64 d, err := ioutil.ReadAll(reader) 65 c.Assert(err, IsNil) 66 c.Assert(d, DeepEquals, t.data) 67 } 68 69 func (t *ObjectsClientTest) TestCreateConnError(c *C) { 70 t.server.Close() 71 err := t.client.PutObject(t.objectKey, bytes.NewReader(t.data)) 72 c.Assert(err, NotNil) 73 }