github.com/hoffie/larasync@v0.0.0-20151025221940-0384d2bddcef/api/server/blob_test.go (about)

     1  package server
     2  
     3  import (
     4  	"bytes"
     5  	"fmt"
     6  	"io/ioutil"
     7  
     8  	. "gopkg.in/check.v1"
     9  )
    10  
    11  type BlobTests struct {
    12  	BaseTests
    13  	blobID   string
    14  	blobData []byte
    15  }
    16  
    17  func createBlobTests() BlobTests {
    18  	return BlobTests{
    19  		BaseTests: newBaseTest(),
    20  	}
    21  }
    22  
    23  func (t *BlobTests) SetUpTest(c *C) {
    24  	t.BaseTests.SetUpTest(c)
    25  	t.blobID = "1234567890"
    26  	t.blobData = []byte("This is testdata")
    27  	baseURLGet := t.getURL
    28  	t.getURL = func() string {
    29  		return fmt.Sprintf(
    30  			"%s/blobs/%s",
    31  			baseURLGet(),
    32  			t.blobID,
    33  		)
    34  	}
    35  	t.req = t.requestWithBytes(c, nil)
    36  }
    37  
    38  func (t *BlobTests) createBlob(c *C) {
    39  	t.createBlobWithData(c, t.blobData)
    40  }
    41  
    42  func (t *BlobTests) createBlobWithData(c *C, data []byte) {
    43  	if !t.rm.Exists(t.repositoryName) {
    44  		t.createRepository(c)
    45  	}
    46  
    47  	repository, err := t.rm.Open(t.repositoryName)
    48  	c.Assert(err, IsNil)
    49  	err = repository.AddObject(t.blobID, bytes.NewReader(data))
    50  	c.Assert(err, IsNil)
    51  }
    52  
    53  func (t *BlobTests) expectStoredBlobData(c *C) {
    54  	t.expectStoredData(c, t.blobData)
    55  }
    56  
    57  func (t *BlobTests) expectStoredData(c *C, expectedData []byte) {
    58  	repository, err := t.rm.Open(t.repositoryName)
    59  	c.Assert(err, IsNil)
    60  	reader, err := repository.GetObjectData(t.blobID)
    61  	c.Assert(err, IsNil)
    62  	retrievedData, err := ioutil.ReadAll(reader)
    63  	c.Assert(err, IsNil)
    64  	err = reader.Close()
    65  	c.Assert(err, IsNil)
    66  	c.Assert(retrievedData, DeepEquals, expectedData)
    67  }