github.com/sashka/siva@v1.6.0/common_test.go (about) 1 package siva 2 3 import ( 4 "bytes" 5 "testing" 6 7 . "gopkg.in/check.v1" 8 ) 9 10 func Test(t *testing.T) { TestingT(t) } 11 12 type CommonSuite struct{} 13 14 var _ = Suite(&CommonSuite{}) 15 16 func (s *CommonSuite) TestHashedWriter(c *C) { 17 buf := bytes.NewBuffer(nil) 18 w := newHashedWriter(buf) 19 n, err := w.Write([]byte("foo")) 20 c.Assert(err, IsNil) 21 c.Assert(n, Equals, 3) 22 c.Assert(w.Checksum(), Equals, uint32(0x8c736521)) 23 c.Assert(w.Position(), Equals, 3) 24 25 n, err = w.Write([]byte("foo")) 26 c.Assert(err, IsNil) 27 c.Assert(n, Equals, 3) 28 c.Assert(w.Checksum(), Equals, uint32(0x647af61e)) 29 c.Assert(w.Position(), Equals, 6) 30 } 31 32 func (s *CommonSuite) TestHashedWriterReset(c *C) { 33 buf := bytes.NewBuffer(nil) 34 w := newHashedWriter(buf) 35 n, err := w.Write([]byte("foo")) 36 c.Assert(err, IsNil) 37 c.Assert(n, Equals, 3) 38 c.Assert(w.Checksum(), Equals, uint32(0x8c736521)) 39 c.Assert(w.Position(), Equals, 3) 40 41 w.Reset() 42 43 n, err = w.Write([]byte("foo")) 44 c.Assert(err, IsNil) 45 c.Assert(n, Equals, 3) 46 c.Assert(w.Checksum(), Equals, uint32(0x8c736521)) 47 c.Assert(w.Position(), Equals, 3) 48 } 49 50 func (s *CommonSuite) TestHashedReader(c *C) { 51 buf := bytes.NewBuffer(nil) 52 _, err := buf.Write([]byte("foo")) 53 c.Assert(err, IsNil) 54 _, err = buf.Write([]byte("foo")) 55 c.Assert(err, IsNil) 56 57 r := newHashedReader(buf) 58 n, err := r.Read([]byte("foo")) 59 c.Assert(err, IsNil) 60 c.Assert(n, Equals, 3) 61 c.Assert(r.Checkshum(), Equals, uint32(0x8c736521)) 62 c.Assert(r.Position(), Equals, 3) 63 64 n, err = r.Read([]byte("foo")) 65 c.Assert(err, IsNil) 66 c.Assert(n, Equals, 3) 67 c.Assert(r.Checkshum(), Equals, uint32(0x647af61e)) 68 c.Assert(r.Position(), Equals, 6) 69 } 70 71 func (s *CommonSuite) TestHashedReaderReset(c *C) { 72 buf := bytes.NewBuffer(nil) 73 _, err := buf.Write([]byte("foo")) 74 c.Assert(err, IsNil) 75 _, err = buf.Write([]byte("foo")) 76 c.Assert(err, IsNil) 77 78 r := newHashedReader(buf) 79 n, err := r.Read([]byte("foo")) 80 c.Assert(err, IsNil) 81 c.Assert(n, Equals, 3) 82 c.Assert(r.Checkshum(), Equals, uint32(0x8c736521)) 83 c.Assert(r.Position(), Equals, 3) 84 85 r.Reset() 86 87 n, err = r.Read([]byte("foo")) 88 c.Assert(err, IsNil) 89 c.Assert(n, Equals, 3) 90 c.Assert(r.Checkshum(), Equals, uint32(0x8c736521)) 91 c.Assert(r.Position(), Equals, 3) 92 } 93 94 type fileFixture struct { 95 Name, Body string 96 } 97 98 var files = []fileFixture{ 99 {"gopher.txt", "Gopher names:\nGeorge\nGeoffrey\nGonzo"}, 100 {"readme.txt", "This archive contains some text files."}, 101 {"todo.txt", "Get animal handling license."}, 102 }