jsoniter_io_test.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package jsoniter
  2. import (
  3. "bytes"
  4. "io"
  5. "testing"
  6. )
  7. func Test_read_by_one(t *testing.T) {
  8. iter := Parse(bytes.NewBufferString("abc"), 1)
  9. b := iter.readByte()
  10. if iter.Error != nil {
  11. t.Fatal(iter.Error)
  12. }
  13. if b != 'a' {
  14. t.Fatal(b)
  15. }
  16. iter.unreadByte()
  17. if iter.Error != nil {
  18. t.Fatal(iter.Error)
  19. }
  20. iter.unreadByte()
  21. if iter.Error == nil {
  22. t.FailNow()
  23. }
  24. iter.Error = nil
  25. b = iter.readByte()
  26. if iter.Error != nil {
  27. t.Fatal(iter.Error)
  28. }
  29. if b != 'a' {
  30. t.Fatal(b)
  31. }
  32. }
  33. func Test_read_by_two(t *testing.T) {
  34. iter := Parse(bytes.NewBufferString("abc"), 2)
  35. b := iter.readByte()
  36. if iter.Error != nil {
  37. t.Fatal(iter.Error)
  38. }
  39. if b != 'a' {
  40. t.Fatal(b)
  41. }
  42. b = iter.readByte()
  43. if iter.Error != nil {
  44. t.Fatal(iter.Error)
  45. }
  46. if b != 'b' {
  47. t.Fatal(b)
  48. }
  49. iter.unreadByte()
  50. if iter.Error != nil {
  51. t.Fatal(iter.Error)
  52. }
  53. iter.unreadByte()
  54. if iter.Error != nil {
  55. t.Fatal(iter.Error)
  56. }
  57. b = iter.readByte()
  58. if iter.Error != nil {
  59. t.Fatal(iter.Error)
  60. }
  61. if b != 'a' {
  62. t.Fatal(b)
  63. }
  64. }
  65. func Test_read_until_eof(t *testing.T) {
  66. iter := Parse(bytes.NewBufferString("abc"), 2)
  67. iter.readByte()
  68. iter.readByte()
  69. b := iter.readByte()
  70. if iter.Error != nil {
  71. t.Fatal(iter.Error)
  72. }
  73. if b != 'c' {
  74. t.Fatal(b)
  75. }
  76. iter.readByte()
  77. if iter.Error != io.EOF {
  78. t.Fatal(iter.Error)
  79. }
  80. }