github.com/qiniu/go-sdk/v7@v7.27.0/sms/bytes/bytes_test.go (about) 1 //go:build unit 2 // +build unit 3 4 package bytes 5 6 import ( 7 "io" 8 "testing" 9 ) 10 11 // --------------------------------------------------- 12 13 func TestBuffer(t *testing.T) { 14 b := NewBuffer() 15 n, err := b.WriteStringAt("Hello", 4) 16 if n != 5 || err != nil { 17 t.Fatal("WriteStringAt failed:", n, err) 18 } 19 if b.Len() != 9 { 20 t.Fatal("Buffer.Len invalid (9 is required):", b.Len()) 21 } 22 23 buf := make([]byte, 10) 24 n, err = b.ReadAt(buf, 50) 25 if n != 0 || err != io.EOF { 26 t.Fatal("ReadAt failed:", n, err) 27 } 28 29 n, err = b.ReadAt(buf, 6) 30 if n != 3 || err != io.EOF || string(buf[:n]) != "llo" { 31 t.Fatal("ReadAt failed:", n, err, string(buf[:n])) 32 } 33 34 n, err = b.WriteAt([]byte("Hi h"), 1) 35 if n != 4 || err != nil { 36 t.Fatal("WriteAt failed:", n, err) 37 } 38 if b.Len() != 9 { 39 t.Fatal("Buffer.Len invalid (9 is required):", b.Len()) 40 } 41 42 n, err = b.ReadAt(buf, 0) 43 if n != 9 || err != io.EOF || string(buf[:n]) != "\x00Hi hello" { 44 t.Fatal("ReadAt failed:", n, err) 45 } 46 47 n, err = b.WriteStringAt("LO world!", 7) 48 if n != 9 || err != nil { 49 t.Fatal("WriteStringAt failed:", n, err) 50 } 51 if b.Len() != 16 { 52 t.Fatal("Buffer.Len invalid (16 is required):", b.Len()) 53 } 54 55 buf = make([]byte, 17) 56 n, err = b.ReadAt(buf, 0) 57 if n != 16 || err != io.EOF || string(buf[:n]) != "\x00Hi helLO world!" { 58 t.Fatal("ReadAt failed:", n, err, string(buf[:n])) 59 } 60 } 61 62 // ---------------------------------------------------