diff --git a/config/reference_config_test.go b/config/reference_config_test.go index 296cde65fad6017b930ef06e0045a45b4af27c86..774fece29f5158b6840b3384b5c56846cc4da37b 100644 --- a/config/reference_config_test.go +++ b/config/reference_config_test.go @@ -20,6 +20,8 @@ package config import ( "sync" "testing" + + "github.com/apache/dubbo-go/common/constant" ) import ( @@ -82,6 +84,7 @@ func doInit() { "MockService": { Params: map[string]string{ "serviceid": "soa.mock", + "forks": "5", }, Registry: "shanghai_reg1,shanghai_reg2,hangzhou_reg1,hangzhou_reg2", InterfaceName: "com.MockService", @@ -190,6 +193,23 @@ func Test_Implement(t *testing.T) { consumerConfig = nil } +func Test_Forking(t *testing.T) { + doInit() + extension.SetProtocol("dubbo", GetProtocol) + extension.SetProtocol("registry", GetProtocol) + m := consumerConfig.References["MockService"] + m.Url = "dubbo://127.0.0.1:20000;registry://127.0.0.2:20000" + + for _, reference := range consumerConfig.References { + reference.Refer() + forks := int(reference.invoker.GetUrl().GetParamInt(constant.FORKS_KEY, constant.DEFAULT_FORKS)) + assert.Equal(t, 5, forks) + assert.NotNil(t, reference.pxy) + assert.NotNil(t, reference.Cluster) + } + consumerConfig = nil +} + func GetProtocol() protocol.Protocol { if regProtocol != nil { return regProtocol