| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- package goredis
- import (
- "bufio"
- "bytes"
- "reflect"
- "testing"
- )
- func TestResp(t *testing.T) {
- var buf bytes.Buffer
- reader := NewRespReader(bufio.NewReader(&buf))
- writer := NewRespWriter(bufio.NewWriter(&buf))
- if err := writer.WriteCommand("SELECT", 1); err != nil {
- t.Fatal(err)
- } else {
- if reqs, err := reader.ParseRequest(); err != nil {
- t.Fatal(err)
- } else if len(reqs) != 2 {
- t.Fatal(len(reqs))
- } else if string(reqs[0]) != "SELECT" {
- t.Fatal(string(reqs[0]))
- } else if string(reqs[1]) != "1" {
- t.Fatal(string(reqs[1]))
- }
- }
- if err := writer.FlushInteger(10); err != nil {
- t.Fatal(err)
- } else {
- if n, err := Int64(reader.Parse()); err != nil {
- t.Fatal(err)
- } else if n != 10 {
- t.Fatal(n)
- }
- }
- if err := writer.FlushString("abc"); err != nil {
- t.Fatal(err)
- } else {
- if s, err := String(reader.Parse()); err != nil {
- t.Fatal(err)
- } else if s != "abc" {
- t.Fatal(s)
- }
- }
- if err := writer.FlushBulk([]byte("abc")); err != nil {
- t.Fatal(err)
- } else {
- if s, err := String(reader.Parse()); err != nil {
- t.Fatal(err)
- } else if s != "abc" {
- t.Fatal(s)
- }
- }
- ay := []interface{}{[]byte("SET"), []byte("a"), []byte("1")}
- if err := writer.FlushArray(ay); err != nil {
- t.Fatal(err)
- } else {
- if oy, err := reader.Parse(); err != nil {
- t.Fatal(err)
- } else if !reflect.DeepEqual(oy, ay) {
- t.Fatalf("%#v", oy)
- }
- }
- e := Error("hello world")
- if err := writer.FlushError(e); err != nil {
- t.Fatal(err)
- } else {
- if ee, err := reader.Parse(); err != nil {
- t.Fatal("must error")
- } else if !reflect.DeepEqual(e, ee) {
- t.Fatal(ee)
- }
- }
- }
|