buffer_test.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package alloc_test
  2. import (
  3. "testing"
  4. . "github.com/v2ray/v2ray-core/common/alloc"
  5. v2testing "github.com/v2ray/v2ray-core/testing"
  6. "github.com/v2ray/v2ray-core/testing/assert"
  7. )
  8. func TestBufferClear(t *testing.T) {
  9. v2testing.Current(t)
  10. buffer := NewBuffer().Clear()
  11. defer buffer.Release()
  12. payload := "Bytes"
  13. buffer.Append([]byte(payload))
  14. assert.Int(buffer.Len()).Equals(len(payload))
  15. buffer.Clear()
  16. assert.Int(buffer.Len()).Equals(0)
  17. }
  18. func TestBufferIsFull(t *testing.T) {
  19. v2testing.Current(t)
  20. buffer := NewBuffer()
  21. defer buffer.Release()
  22. assert.Bool(buffer.IsFull()).IsTrue()
  23. buffer.Clear()
  24. assert.Bool(buffer.IsFull()).IsFalse()
  25. }
  26. func TestBufferPrepend(t *testing.T) {
  27. v2testing.Current(t)
  28. buffer := NewBuffer().Clear()
  29. defer buffer.Release()
  30. buffer.Append([]byte{'a', 'b', 'c'})
  31. buffer.Prepend([]byte{'x', 'y', 'z'})
  32. assert.Int(buffer.Len()).Equals(6)
  33. assert.Bytes(buffer.Value).Equals([]byte("xyzabc"))
  34. buffer.Prepend([]byte{'u', 'v', 'w'})
  35. assert.Bytes(buffer.Value).Equals([]byte("uvwxyzabc"))
  36. }
  37. func TestBufferString(t *testing.T) {
  38. v2testing.Current(t)
  39. buffer := NewBuffer().Clear()
  40. defer buffer.Release()
  41. buffer.AppendString("Test String")
  42. assert.String(buffer).Equals("Test String")
  43. }