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  // ---------------------------------------------------