func TestDialURLHost(t *testing.T) { checkHost := func(network, address string) (net.Conn, error) { if address != "localhost:6379" { t.Errorf("DialURL did not set host to localhost by default (got %v)", address) } return nil, nil } _, err := redis.DialURL("redis://:6379", redis.DialNetDial(checkHost)) if err != nil { t.Error("dial error:", err) } }
func TestDialURL(t *testing.T) { for _, d := range dialErrors { _, err := redis.DialURL(d.rawurl) if err == nil || !strings.Contains(err.Error(), d.expectedError) { t.Errorf("DialURL did not return expected error (expected %v to contain %s)", err, d.expectedError) } } checkPort := func(network, address string) (net.Conn, error) { if address != "localhost:6379" { t.Errorf("DialURL did not set port to 6379 by default (got %v)", address) } return net.Dial(network, address) } c, err := redis.DialURL("redis://localhost", redis.DialNetDial(checkPort)) if err != nil { t.Error("dial error:", err) } c.Close() checkHost := func(network, address string) (net.Conn, error) { if address != "localhost:6379" { t.Errorf("DialURL did not set host to localhost by default (got %v)", address) } return net.Dial(network, address) } c, err = redis.DialURL("redis://:6379", redis.DialNetDial(checkHost)) if err != nil { t.Error("dial error:", err) } c.Close() // Check that the database is set correctly c1, err := redis.DialURL("redis://:6379/8") defer c1.Close() if err != nil { t.Error("Dial error:", err) } dbSize, _ := redis.Int(c1.Do("DBSIZE")) if dbSize > 0 { t.Fatal("DB 8 has existing keys; aborting test to avoid overwriting data") } c1.Do("SET", "var", "val") c2, err := redis.Dial("tcp", ":6379") defer c2.Close() if err != nil { t.Error("dial error:", err) } _, err = c2.Do("SELECT", "8") if err != nil { t.Error(err) } got, err := redis.String(c2.Do("GET", "var")) if err != nil { t.Error(err) } if got != "val" { t.Error("DialURL did not correctly set the db.") } _, err = c2.Do("DEL", "var") }
func dialTestConn(r io.Reader, w io.Writer) redis.DialOption { return redis.DialNetDial(func(net, addr string) (net.Conn, error) { return &testConn{Reader: r, Writer: w}, nil }) }