github.com/hoffie/larasync@v0.0.0-20151025221940-0384d2bddcef/repository/chunker/chunker_test.go (about)

     1  package chunker
     2  
     3  import (
     4  	"io/ioutil"
     5  	"path/filepath"
     6  
     7  	. "gopkg.in/check.v1"
     8  )
     9  
    10  type ChunkerTests struct {
    11  	dir string
    12  }
    13  
    14  var _ = Suite(&ChunkerTests{})
    15  
    16  func (t *ChunkerTests) SetUpTest(c *C) {
    17  	t.dir = c.MkDir()
    18  }
    19  
    20  func (t *ChunkerTests) TestHandleError(c *C) {
    21  	_, err := New(filepath.Join(t.dir, "non-existing"), 16)
    22  	c.Assert(err, NotNil)
    23  }
    24  
    25  func (t *ChunkerTests) TestHandleBadChunkSiez(c *C) {
    26  	_, err := New("test", 15)
    27  	c.Assert(err, NotNil)
    28  }
    29  
    30  func (t *ChunkerTests) TestNormal(c *C) {
    31  	path := filepath.Join(t.dir, "test")
    32  	err := ioutil.WriteFile(path, []byte("12345678901234567890"),
    33  		0600)
    34  	c.Assert(err, IsNil)
    35  
    36  	ch, err := New(path, 16)
    37  	c.Assert(err, IsNil)
    38  	defer ch.Close()
    39  	c.Assert(ch.HasNext(), Equals, true)
    40  	chunk, err := ch.Next()
    41  	c.Assert(err, IsNil)
    42  	c.Assert(chunk, DeepEquals, []byte("1234567890123456"))
    43  	c.Assert(ch.HasNext(), Equals, true)
    44  	chunk, err = ch.Next()
    45  	c.Assert(err, IsNil)
    46  	c.Assert(chunk, DeepEquals, []byte("7890"))
    47  	c.Assert(ch.HasNext(), Equals, false)
    48  }