Skip to content
Snippets Groups Projects
Commit 25d2c237 authored by 邹毅贤's avatar 邹毅贤
Browse files

add test case for async call

parent 13f15ea5
No related branches found
No related tags found
No related merge requests found
......@@ -181,3 +181,7 @@ func (p *Proxy) Implement(v common.RPCService) {
func (p *Proxy) Get() common.RPCService {
return p.rpc
}
func (p *Proxy) GetCallback() interface{} {
return p.callBack
}
......@@ -142,10 +142,10 @@ func (refconfig *ReferenceConfig) Refer() {
//create proxy
if refconfig.Async {
refconfig.pxy = extension.GetProxyFactory(consumerConfig.ProxyFactory).GetProxy(refconfig.invoker, url)
} else {
callback := GetCallback(refconfig.id)
refconfig.pxy = extension.GetProxyFactory(consumerConfig.ProxyFactory).GetAsyncProxy(refconfig.invoker, callback, url)
} else {
refconfig.pxy = extension.GetProxyFactory(consumerConfig.ProxyFactory).GetProxy(refconfig.invoker, url)
}
}
......
......@@ -81,6 +81,7 @@ func doInitConsumer() {
},
References: map[string]*ReferenceConfig{
"MockService": {
id: "MockProvider",
Params: map[string]string{
"serviceid": "soa.mock",
"forks": "5",
......@@ -110,6 +111,26 @@ func doInitConsumer() {
}
}
var mockProvider = new(MockProvider)
type MockProvider struct {
}
func (m *MockProvider) Reference() string {
return "MockProvider"
}
func (m *MockProvider) CallBack(res common.CallbackResponse) {
}
func doInitConsumerAsync() {
doInitConsumer()
SetConsumerService(mockProvider)
for _, v := range consumerConfig.References {
v.Async = true
}
}
func doInitConsumerWithSingleRegistry() {
consumerConfig = &ConsumerConfig{
ApplicationConfig: &ApplicationConfig{
......@@ -181,6 +202,22 @@ func Test_Refer(t *testing.T) {
}
consumerConfig = nil
}
func Test_ReferAsync(t *testing.T) {
doInitConsumerAsync()
extension.SetProtocol("registry", GetProtocol)
extension.SetCluster("registryAware", cluster_impl.NewRegistryAwareCluster)
for _, reference := range consumerConfig.References {
reference.Refer()
assert.Equal(t, "soa.mock", reference.Params["serviceid"])
assert.NotNil(t, reference.invoker)
assert.NotNil(t, reference.pxy)
assert.NotNil(t, reference.pxy.GetCallback())
}
consumerConfig = nil
}
func Test_ReferP2P(t *testing.T) {
doInitConsumer()
extension.SetProtocol("dubbo", GetProtocol)
......
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