1package buffer 2 3import ( 4 "bytes" 5 "testing" 6) 7 8func TestAppendByte(t *testing.T) { 9 var b Buffer 10 var want []byte 11 12 for i := 0; i < 1000; i++ { 13 b.AppendByte(1) 14 b.AppendByte(2) 15 want = append(want, 1, 2) 16 } 17 18 got := b.BuildBytes() 19 if !bytes.Equal(got, want) { 20 t.Errorf("BuildBytes() = %v; want %v", got, want) 21 } 22} 23 24func TestAppendBytes(t *testing.T) { 25 var b Buffer 26 var want []byte 27 28 for i := 0; i < 1000; i++ { 29 b.AppendBytes([]byte{1, 2}) 30 want = append(want, 1, 2) 31 } 32 33 got := b.BuildBytes() 34 if !bytes.Equal(got, want) { 35 t.Errorf("BuildBytes() = %v; want %v", got, want) 36 } 37} 38 39func TestAppendString(t *testing.T) { 40 var b Buffer 41 var want []byte 42 43 s := "test" 44 for i := 0; i < 1000; i++ { 45 b.AppendBytes([]byte(s)) 46 want = append(want, s...) 47 } 48 49 got := b.BuildBytes() 50 if !bytes.Equal(got, want) { 51 t.Errorf("BuildBytes() = %v; want %v", got, want) 52 } 53} 54 55func TestDumpTo(t *testing.T) { 56 var b Buffer 57 var want []byte 58 59 s := "test" 60 for i := 0; i < 1000; i++ { 61 b.AppendBytes([]byte(s)) 62 want = append(want, s...) 63 } 64 65 out := &bytes.Buffer{} 66 n, err := b.DumpTo(out) 67 if err != nil { 68 t.Errorf("DumpTo() error: %v", err) 69 } 70 71 got := out.Bytes() 72 if !bytes.Equal(got, want) { 73 t.Errorf("DumpTo(): got %v; want %v", got, want) 74 } 75 76 if n != len(want) { 77 t.Errorf("DumpTo() = %v; want %v", n, len(want)) 78 } 79} 80 81func TestReadCloser(t *testing.T) { 82 var b Buffer 83 var want []byte 84 85 s := "test" 86 for i := 0; i < 1000; i++ { 87 b.AppendBytes([]byte(s)) 88 want = append(want, s...) 89 } 90 91 out := &bytes.Buffer{} 92 rc := b.ReadCloser() 93 n, err := out.ReadFrom(rc) 94 if err != nil { 95 t.Errorf("ReadCloser() error: %v", err) 96 } 97 rc.Close() // Will always return nil 98 99 got := out.Bytes() 100 if !bytes.Equal(got, want) { 101 t.Errorf("DumpTo(): got %v; want %v", got, want) 102 } 103 104 if n != int64(len(want)) { 105 t.Errorf("DumpTo() = %v; want %v", n, len(want)) 106 } 107} 108