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 }