func TestHashM(t *testing.T) { c := getTestConn() defer c.Close() key := []byte("b") if ok, err := redis.String(c.Do("hmset", key, 1, 1, 2, 2, 3, 3)); err != nil { t.Fatal(err) } else if ok != OK { t.Fatal(ok) } if n, err := redis.Int(c.Do("hlen", key)); err != nil { t.Fatal(err) } else if n != 3 { t.Fatal(n) } if v, err := redis.MultiBulk(c.Do("hmget", key, 1, 2, 3, 4)); err != nil { t.Fatal(err) } else { if err := testHashArray(v, 1, 2, 3, 0); err != nil { t.Fatal(err) } } if n, err := redis.Int(c.Do("hdel", key, 1, 2, 3, 4)); err != nil { t.Fatal(err) } else if n != 3 { t.Fatal(n) } if n, err := redis.Int(c.Do("hlen", key)); err != nil { t.Fatal(err) } else if n != 0 { t.Fatal(n) } if v, err := redis.MultiBulk(c.Do("hmget", key, 1, 2, 3, 4)); err != nil { t.Fatal(err) } else { if err := testHashArray(v, 0, 0, 0, 0); err != nil { t.Fatal(err) } } if n, err := redis.Int(c.Do("hlen", key)); err != nil { t.Fatal(err) } else if n != 0 { t.Fatal(n) } }
func TestHashGetAll(t *testing.T) { c := getTestConn() defer c.Close() key := []byte("d") if ok, err := redis.String(c.Do("hmset", key, 1, 1, 2, 2, 3, 3)); err != nil { t.Fatal(err) } else if ok != OK { t.Fatal(ok) } if v, err := redis.MultiBulk(c.Do("hgetall", key)); err != nil { t.Fatal(err) } else { if err := testHashArray(v, 1, 1, 2, 2, 3, 3); err != nil { t.Fatal(err) } } if v, err := redis.MultiBulk(c.Do("hkeys", key)); err != nil { t.Fatal(err) } else { if err := testHashArray(v, 1, 2, 3); err != nil { t.Fatal(err) } } if v, err := redis.MultiBulk(c.Do("hvals", key)); err != nil { t.Fatal(err) } else { if err := testHashArray(v, 1, 2, 3); err != nil { t.Fatal(err) } } if n, err := redis.Int(c.Do("hclear", key)); err != nil { t.Fatal(err) } else if n != 3 { t.Fatal(n) } if n, err := redis.Int(c.Do("hlen", key)); err != nil { t.Fatal(err) } else if n != 0 { t.Fatal(n) } }
func TestHashIncr(t *testing.T) { c := getTestConn() defer c.Close() key := []byte("c") if n, err := redis.Int(c.Do("hincrby", key, 1, 1)); err != nil { t.Fatal(err) } else if n != 1 { t.Fatal(err) } if n, err := redis.Int(c.Do("hlen", key)); err != nil { t.Fatal(err) } else if n != 1 { t.Fatal(n) } if n, err := redis.Int(c.Do("hincrby", key, 1, 10)); err != nil { t.Fatal(err) } else if n != 11 { t.Fatal(err) } if n, err := redis.Int(c.Do("hlen", key)); err != nil { t.Fatal(err) } else if n != 1 { t.Fatal(n) } if n, err := redis.Int(c.Do("hincrby", key, 1, -11)); err != nil { t.Fatal(err) } else if n != 0 { t.Fatal(err) } }
func TestHash(t *testing.T) { c := getTestConn() defer c.Close() key := []byte("a") if n, err := redis.Int(c.Do("hset", key, 1, 0)); err != nil { t.Fatal(err) } else if n != 1 { t.Fatal(n) } if n, err := redis.Int(c.Do("hexists", key, 1)); err != nil { t.Fatal(err) } else if n != 1 { t.Fatal(n) } if n, err := redis.Int(c.Do("hexists", key, -1)); err != nil { t.Fatal(err) } else if n != 0 { t.Fatal(n) } if n, err := redis.Int(c.Do("hget", key, 1)); err != nil { t.Fatal(err) } else if n != 0 { t.Fatal(n) } if n, err := redis.Int(c.Do("hset", key, 1, 1)); err != nil { t.Fatal(err) } else if n != 0 { t.Fatal(n) } if n, err := redis.Int(c.Do("hget", key, 1)); err != nil { t.Fatal(err) } else if n != 1 { t.Fatal(n) } if n, err := redis.Int(c.Do("hlen", key)); err != nil { t.Fatal(err) } else if n != 1 { t.Fatal(n) } }
func TestKV(t *testing.T) { c := getTestConn() defer c.Close() if ok, err := redis.String(c.Do("set", "a", "1234")); err != nil { t.Fatal(err) } else if ok != OK { t.Fatal(ok) } if n, err := redis.Int(c.Do("setnx", "a", "123")); err != nil { t.Fatal(err) } else if n != 0 { t.Fatal(n) } if n, err := redis.Int(c.Do("setnx", "b", "123")); err != nil { t.Fatal(err) } else if n != 1 { t.Fatal(n) } if v, err := redis.String(c.Do("get", "a")); err != nil { t.Fatal(err) } else if v != "1234" { t.Fatal(v) } if v, err := redis.String(c.Do("getset", "a", "123")); err != nil { t.Fatal(err) } else if v != "1234" { t.Fatal(v) } if v, err := redis.String(c.Do("get", "a")); err != nil { t.Fatal(err) } else if v != "123" { t.Fatal(v) } if n, err := redis.Int(c.Do("exists", "a")); err != nil { t.Fatal(err) } else if n != 1 { t.Fatal(n) } if n, err := redis.Int(c.Do("exists", "empty_key_test")); err != nil { t.Fatal(err) } else if n != 0 { t.Fatal(n) } if _, err := redis.Int(c.Do("del", "a", "b")); err != nil { t.Fatal(err) } if n, err := redis.Int(c.Do("exists", "a")); err != nil { t.Fatal(err) } else if n != 0 { t.Fatal(n) } if n, err := redis.Int(c.Do("exists", "b")); err != nil { t.Fatal(err) } else if n != 0 { t.Fatal(n) } }