From 31df4a11838dc8405e72e5aada5439a3b32b1852 Mon Sep 17 00:00:00 2001 From: xuyu Date: Wed, 8 Jan 2014 15:56:04 +0800 Subject: [PATCH] update test case --- pubsub_test.go | 14 ++++++++++---- redis.go | 13 ++++--------- scripting_test.go | 26 ++++++++------------------ 3 files changed, 22 insertions(+), 31 deletions(-) diff --git a/pubsub_test.go b/pubsub_test.go index 2b3a241..9ef71b2 100644 --- a/pubsub_test.go +++ b/pubsub_test.go @@ -25,7 +25,7 @@ func TestSubscribe(t *testing.T) { return } for { - list, err := sub.Recv() + list, err := sub.Receive() if err != nil { t.Error(err) quit <- true @@ -60,7 +60,7 @@ func TestPSubscribe(t *testing.T) { return } for { - list, err := psub.Recv() + list, err := psub.Receive() if err != nil { t.Error(err) quit <- true @@ -90,7 +90,9 @@ func TestUnSubscribe(t *testing.T) { defer sub.Close() go func() { for { - sub.Recv() + if _, err := sub.Receive(); err != nil { + t.Error(err) + } ch <- true } }() @@ -106,6 +108,7 @@ func TestUnSubscribe(t *testing.T) { } time.Sleep(100 * time.Millisecond) <-ch + time.Sleep(100 * time.Millisecond) if len(sub.Channels) != 0 { t.Fail() } @@ -120,7 +123,9 @@ func TestPUnSubscribe(t *testing.T) { defer sub.Close() go func() { for { - sub.Recv() + if _, err := sub.Receive(); err != nil { + t.Error(err) + } ch <- true } }() @@ -136,6 +141,7 @@ func TestPUnSubscribe(t *testing.T) { } time.Sleep(100 * time.Millisecond) <-ch + time.Sleep(100 * time.Millisecond) if len(sub.Patterns) != 0 { t.Fail() } diff --git a/redis.go b/redis.go index 0daf56d..f7ac8af 100644 --- a/redis.go +++ b/redis.go @@ -1403,10 +1403,6 @@ func (r *Redis) Publish(channel, message string) (int64, error) { return rp.IntegerValue() } -func (r *Redis) PubSub() (*PubSub, error) { - return newPubSub(r) -} - // QUIT // Ask the server to close the connection. // The connection is closed as soon as all pending replies have been written to the client. @@ -2188,18 +2184,17 @@ type PubSub struct { Channels map[string]bool } -func newPubSub(r *Redis) (*PubSub, error) { +func (r *Redis) PubSub() (*PubSub, error) { c, err := r.openConnection() if err != nil { return nil, err } - p := &PubSub{ + return &PubSub{ redis: r, conn: c, Patterns: make(map[string]bool), Channels: make(map[string]bool), - } - return p, nil + }, nil } func (p *PubSub) Close() error { @@ -2217,7 +2212,7 @@ func (p *PubSub) Close() error { // and the client can issue any kind of Redis command as we are outside the Pub/Sub state. // message: it is a message received as result of a PUBLISH command issued by another client. // The second element is the name of the originating channel, and the third argument is the actual message payload. -func (p *PubSub) Recv() ([]string, error) { +func (p *PubSub) Receive() ([]string, error) { rp, err := p.conn.RecvReply() if err != nil { return nil, err diff --git a/scripting_test.go b/scripting_test.go index ec68660..35bef58 100644 --- a/scripting_test.go +++ b/scripting_test.go @@ -8,43 +8,33 @@ func TestEval(t *testing.T) { rp, err := r.Eval("return {KEYS[1], KEYS[2], ARGV[1], ARGV[2]}", []string{"key1", "key2"}, []string{"arg1", "arg2"}) if err != nil { t.Error(err) - } - l, err := rp.ListValue() - if err != nil { + } else if l, err := rp.ListValue(); err != nil { t.Error(err) - } - if l[0] != "key1" || l[3] != "arg2" { + } else if l[0] != "key1" || l[3] != "arg2" { t.Fail() } rp, err = r.Eval("return redis.call('set','foo','bar')", nil, nil) if err != nil { t.Error(err) - } - if err := rp.OKValue(); err != nil { + } else if err := rp.OKValue(); err != nil { t.Error(err) } rp, err = r.Eval("return 10", nil, nil) if err != nil { t.Error(err) - } - n, err := rp.IntegerValue() - if err != nil { + } else if n, err := rp.IntegerValue(); err != nil { t.Error(err) - } - if n != 10 { + } else if n != 10 { t.Fail() } rp, err = r.Eval("return {1,2,{3,'Hello World!'}}", nil, nil) if err != nil { t.Error(err) - } - if len(rp.Multi) != 3 { + } else if len(rp.Multi) != 3 { t.Fail() - } - if rp.Multi[2].Multi[0].Integer != 3 { + } else if rp.Multi[2].Multi[0].Integer != 3 { t.Fail() - } - if s, err := rp.Multi[2].Multi[1].StringValue(); err != nil || s != "Hello World!" { + } else if s, err := rp.Multi[2].Multi[1].StringValue(); err != nil || s != "Hello World!" { t.Fail() } }