From 8b1156773dc2b12c6214b484391a29f69e333501 Mon Sep 17 00:00:00 2001 From: "william.liangf" Date: Tue, 27 Dec 2011 13:02:47 +0000 Subject: [PATCH] =?UTF-8?q?DUBBO-70=09=E5=A2=9E=E5=8A=A0Cluster=E5=B1=82?= =?UTF-8?q?=E4=BC=A0=E9=80=92RpcException=E7=9A=84ErrorCode=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@752 1a56cb94-b969-4eaa-88fa-be21384802f2 --- .../support/FailfastClusterInvokerTest.java | 39 +++++++++++++++++- .../support/FailoverClusterInvokerTest.java | 40 +++++++++++++++++++ .../support/ForkingClusterInvokerTest.java | 38 ++++++++++++++++++ 3 files changed, 116 insertions(+), 1 deletion(-) diff --git a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/FailfastClusterInvokerTest.java b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/FailfastClusterInvokerTest.java index a06b6df4e..abb90e81f 100644 --- a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/FailfastClusterInvokerTest.java +++ b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/FailfastClusterInvokerTest.java @@ -28,13 +28,17 @@ import org.junit.Before; import org.junit.Test; import com.alibaba.dubbo.common.URL; +import com.alibaba.dubbo.common.utils.NetUtils; import com.alibaba.dubbo.rpc.Invocation; import com.alibaba.dubbo.rpc.Invoker; import com.alibaba.dubbo.rpc.Result; import com.alibaba.dubbo.rpc.RpcContext; import com.alibaba.dubbo.rpc.RpcException; +import com.alibaba.dubbo.rpc.RpcInvocation; import com.alibaba.dubbo.rpc.RpcResult; import com.alibaba.dubbo.rpc.cluster.Directory; +import com.alibaba.dubbo.rpc.cluster.directory.StaticDirectory; +import com.alibaba.dubbo.rpc.cluster.filter.DemoService; /** * FailfastClusterInvokerTest @@ -130,6 +134,39 @@ public class FailfastClusterInvokerTest { } catch (RpcException expected) { } } - + + @Test() + public void testTimeoutExceptionCode() { + List> invokers = new ArrayList>(); + invokers.add(new Invoker() { + + public Class getInterface() { + return DemoService.class; + } + + public URL getUrl() { + return URL.valueOf("dubbo://" + NetUtils.getLocalHost() + ":20880/" + DemoService.class.getName()); + } + + public boolean isAvailable() { + return false; + } + + public Result invoke(Invocation invocation) throws RpcException { + throw new RpcException(RpcException.TIMEOUT_EXCEPTION, "test timeout"); + } + + public void destroy() { + } + }); + Directory directory = new StaticDirectory(invokers); + FailfastClusterInvoker cluster = new FailfastClusterInvoker(directory); + try { + cluster.invoke(new RpcInvocation("sayHello", new Class[0], new Object[0])); + Assert.fail(); + } catch (RpcException e) { + Assert.assertEquals(RpcException.TIMEOUT_EXCEPTION, e.getCode()); + } + } } \ No newline at end of file diff --git a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/FailoverClusterInvokerTest.java b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/FailoverClusterInvokerTest.java index 706e5542b..f6ebb093e 100644 --- a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/FailoverClusterInvokerTest.java +++ b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/FailoverClusterInvokerTest.java @@ -23,17 +23,23 @@ import static org.junit.Assert.fail; import java.util.ArrayList; import java.util.List; +import junit.framework.Assert; + import org.easymock.EasyMock; import org.junit.Before; import org.junit.Test; import com.alibaba.dubbo.common.URL; +import com.alibaba.dubbo.common.utils.NetUtils; import com.alibaba.dubbo.rpc.Invocation; import com.alibaba.dubbo.rpc.Invoker; import com.alibaba.dubbo.rpc.Result; import com.alibaba.dubbo.rpc.RpcException; +import com.alibaba.dubbo.rpc.RpcInvocation; import com.alibaba.dubbo.rpc.RpcResult; import com.alibaba.dubbo.rpc.cluster.Directory; +import com.alibaba.dubbo.rpc.cluster.directory.StaticDirectory; +import com.alibaba.dubbo.rpc.cluster.filter.DemoService; /** * FailoverClusterInvokerTest @@ -171,5 +177,39 @@ public class FailoverClusterInvokerTest { } catch (RpcException expected) { expected.printStackTrace(); } + } + + @Test() + public void testTimeoutExceptionCode() { + List> invokers = new ArrayList>(); + invokers.add(new Invoker() { + + public Class getInterface() { + return DemoService.class; + } + + public URL getUrl() { + return URL.valueOf("dubbo://" + NetUtils.getLocalHost() + ":20880/" + DemoService.class.getName()); + } + + public boolean isAvailable() { + return false; + } + + public Result invoke(Invocation invocation) throws RpcException { + throw new RpcException(RpcException.TIMEOUT_EXCEPTION, "test timeout"); + } + + public void destroy() { + } + }); + Directory directory = new StaticDirectory(invokers); + FailoverClusterInvoker cluster = new FailoverClusterInvoker(directory); + try { + cluster.invoke(new RpcInvocation("sayHello", new Class[0], new Object[0])); + Assert.fail(); + } catch (RpcException e) { + Assert.assertEquals(RpcException.TIMEOUT_EXCEPTION, e.getCode()); + } } } \ No newline at end of file diff --git a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/ForkingClusterInvokerTest.java b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/ForkingClusterInvokerTest.java index 94420c74f..f2814d929 100644 --- a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/ForkingClusterInvokerTest.java +++ b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/ForkingClusterInvokerTest.java @@ -28,12 +28,16 @@ import org.junit.Before; import org.junit.Test; import com.alibaba.dubbo.common.URL; +import com.alibaba.dubbo.common.utils.NetUtils; import com.alibaba.dubbo.rpc.Invocation; import com.alibaba.dubbo.rpc.Invoker; import com.alibaba.dubbo.rpc.Result; import com.alibaba.dubbo.rpc.RpcException; +import com.alibaba.dubbo.rpc.RpcInvocation; import com.alibaba.dubbo.rpc.RpcResult; import com.alibaba.dubbo.rpc.cluster.Directory; +import com.alibaba.dubbo.rpc.cluster.directory.StaticDirectory; +import com.alibaba.dubbo.rpc.cluster.filter.DemoService; /** * ForkingClusterInvokerTest @@ -170,4 +174,38 @@ public class ForkingClusterInvokerTest { assertTrue(expected.getMessage().contains("No provider")); } } + + @Test() + public void testTimeoutExceptionCode() { + List> invokers = new ArrayList>(); + invokers.add(new Invoker() { + + public Class getInterface() { + return DemoService.class; + } + + public URL getUrl() { + return URL.valueOf("dubbo://" + NetUtils.getLocalHost() + ":20880/" + DemoService.class.getName()); + } + + public boolean isAvailable() { + return false; + } + + public Result invoke(Invocation invocation) throws RpcException { + throw new RpcException(RpcException.TIMEOUT_EXCEPTION, "test timeout"); + } + + public void destroy() { + } + }); + Directory directory = new StaticDirectory(invokers); + ForkingClusterInvoker cluster = new ForkingClusterInvoker(directory); + try { + cluster.invoke(new RpcInvocation("sayHello", new Class[0], new Object[0])); + Assert.fail(); + } catch (RpcException e) { + Assert.assertEquals(RpcException.TIMEOUT_EXCEPTION, e.getCode()); + } + } } \ No newline at end of file -- GitLab