data_reader_test.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. package network
  2. import (
  3. "bytes"
  4. "encoding/binary"
  5. "testing"
  6. )
  7. const (
  8. readerByteValue byte = 1
  9. readerUint8Value uint8 = 5
  10. readerUint16Value uint16 = 6
  11. readerUint32Value uint32 = 7
  12. readerUint64Value uint64 = 8
  13. readerStringValue = "91011"
  14. )
  15. var (
  16. readerBytesValue = []byte{2, 3, 4}
  17. )
  18. func TestDataReader(t *testing.T) {
  19. buffer := &bytes.Buffer{}
  20. err := binary.Write(buffer, binary.BigEndian, readerByteValue)
  21. if err != nil {
  22. t.Fatal(err)
  23. }
  24. err = binary.Write(buffer, binary.BigEndian, readerBytesValue)
  25. if err != nil {
  26. t.Fatal(err)
  27. }
  28. err = binary.Write(buffer, binary.BigEndian, readerUint8Value)
  29. if err != nil {
  30. t.Fatal(err)
  31. }
  32. err = binary.Write(buffer, binary.BigEndian, readerUint16Value)
  33. if err != nil {
  34. t.Fatal(err)
  35. }
  36. err = binary.Write(buffer, binary.BigEndian, readerUint32Value)
  37. if err != nil {
  38. t.Fatal(err)
  39. }
  40. err = binary.Write(buffer, binary.BigEndian, readerUint64Value)
  41. if err != nil {
  42. t.Fatal(err)
  43. }
  44. err = binary.Write(buffer, binary.BigEndian, []byte(readerStringValue))
  45. if err != nil {
  46. t.Fatal(err)
  47. }
  48. reader := NewDataReader(buffer.Bytes())
  49. retByteValue, err := reader.Byte()
  50. if err != nil {
  51. t.Fatal(err)
  52. }
  53. if retByteValue != readerByteValue {
  54. t.Fatal("byte不正确", err.Error())
  55. }
  56. retBytesValue, err := reader.Bytes(len(readerBytesValue))
  57. if err != nil {
  58. t.Fatal(err)
  59. }
  60. if len(retBytesValue) != len(readerBytesValue) {
  61. t.Fatal("bytes长度不正确")
  62. }
  63. for i := 0; i < len(retBytesValue); i++ {
  64. if retBytesValue[i] != readerBytesValue[i] {
  65. t.Fatal("bytes不正确")
  66. }
  67. }
  68. retUint8Value, err := reader.Uint8()
  69. if err != nil {
  70. t.Fatal(err)
  71. }
  72. if retUint8Value != readerUint8Value {
  73. t.Fatal("uint8不正确", err.Error())
  74. }
  75. retUint16Value, err := reader.Uint16()
  76. if err != nil {
  77. t.Fatal(err)
  78. }
  79. if retUint16Value != readerUint16Value {
  80. t.Fatal("uint16不正确", err.Error())
  81. }
  82. retUint32Value, err := reader.Uint32()
  83. if err != nil {
  84. t.Fatal(err)
  85. }
  86. if retUint32Value != readerUint32Value {
  87. t.Fatal("uint32不正确", err.Error())
  88. }
  89. retUint64Value, err := reader.Uint64()
  90. if err != nil {
  91. t.Fatal(err)
  92. }
  93. if retUint64Value != readerUint64Value {
  94. t.Fatal("uint64不正确", err.Error())
  95. }
  96. retStringValue, err := reader.String(len(readerStringValue))
  97. if err != nil {
  98. t.Fatal(err)
  99. }
  100. if retStringValue != readerStringValue {
  101. t.Fatal("uint64不正确", err.Error())
  102. }
  103. }