Skip to content
Snippets Groups Projects
Commit 495d1e04 authored by aliiohs's avatar aliiohs
Browse files

add test case for url method

parent 90d2caf8
No related branches found
No related tags found
No related merge requests found
...@@ -227,7 +227,7 @@ func (c *ConditionRouter) MatchThen(url common.URL, param common.URL) (bool, err ...@@ -227,7 +227,7 @@ func (c *ConditionRouter) MatchThen(url common.URL, param common.URL) (bool, err
func MatchCondition(pairs map[string]MatchPair, url *common.URL, param *common.URL, invocation protocol.Invocation) (bool, error) { func MatchCondition(pairs map[string]MatchPair, url *common.URL, param *common.URL, invocation protocol.Invocation) (bool, error) {
sample := url.ToMap() sample := url.ToMap()
if sample == nil { if sample == nil {
return true, perrors.Errorf("") return true, perrors.Errorf("url is not allowed be nil")
} }
result := false result := false
for key, matchPair := range pairs { for key, matchPair := range pairs {
......
...@@ -10,8 +10,7 @@ func init() { ...@@ -10,8 +10,7 @@ func init() {
extension.SetRouterFactory("condition", NewConditionRouterFactory) extension.SetRouterFactory("condition", NewConditionRouterFactory)
} }
type ConditionRouterFactory struct { type ConditionRouterFactory struct{}
}
func NewConditionRouterFactory() cluster.RouterFactory { func NewConditionRouterFactory() cluster.RouterFactory {
return ConditionRouterFactory{} return ConditionRouterFactory{}
......
...@@ -19,6 +19,7 @@ package common ...@@ -19,6 +19,7 @@ package common
import ( import (
"context" "context"
"encoding/base64"
"net/url" "net/url"
"testing" "testing"
) )
...@@ -129,6 +130,42 @@ func TestURL_GetParamBool(t *testing.T) { ...@@ -129,6 +130,42 @@ func TestURL_GetParamBool(t *testing.T) {
assert.Equal(t, false, v) assert.Equal(t, false, v)
} }
func TestURL_GetParameterAndDecoded(t *testing.T) {
rule := "host = 2.2.2.2,1.1.1.1,3.3.3.3 & host !=1.1.1.1 => host = 1.2.3.4"
params := url.Values{}
params.Set("rule", base64.URLEncoding.EncodeToString([]byte(rule)))
u := URL{baseUrl: baseUrl{Params: params}}
v, _ := u.GetParameterAndDecoded("rule")
assert.Equal(t, rule, v)
}
func TestURL_GetRawParameter(t *testing.T) {
u, _ := NewURL(context.TODO(), "condition://0.0.0.0:8080/com.foo.BarService?serialization=fastjson")
u.Username = "test"
u.Password = "test"
assert.Equal(t, "condition", u.GetRawParameter("protocol"))
assert.Equal(t, "0.0.0.0", u.GetRawParameter("host"))
assert.Equal(t, "8080", u.GetRawParameter("port"))
assert.Equal(t, "test", u.GetRawParameter("username"))
assert.Equal(t, "test", u.GetRawParameter("password"))
assert.Equal(t, "/com.foo.BarService", u.GetRawParameter("path"))
assert.Equal(t, "fastjson", u.GetRawParameter("serialization"))
}
func TestURL_ToMap(t *testing.T) {
u, _ := NewURL(context.TODO(), "condition://0.0.0.0:8080/com.foo.BarService?serialization=fastjson")
u.Username = "test"
u.Password = "test"
m := u.ToMap()
assert.Equal(t, 7, len(m))
assert.Equal(t, "condition", m["protocol"])
assert.Equal(t, "0.0.0.0", m["host"])
assert.Equal(t, "8080", m["port"])
assert.Equal(t, "test", m["username"])
assert.Equal(t, "test", m["password"])
assert.Equal(t, "/com.foo.BarService", m["path"])
assert.Equal(t, "fastjson", m["serialization"])
}
func TestURL_GetMethodParamInt(t *testing.T) { func TestURL_GetMethodParamInt(t *testing.T) {
params := url.Values{} params := url.Values{}
params.Set("methods.GetValue.timeout", "3") params.Set("methods.GetValue.timeout", "3")
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment