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  }