This is an automated email from the ASF dual-hosted git repository.

wangxin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
     new 2826666  Enchance test coverage of dubbo cluster module (#1885)
2826666 is described below

commit 28266668d38424bf936e21d16e6f32c8750685b7
Author: Xin Wang <xin.victorw...@gmail.com>
AuthorDate: Thu Jun 7 19:06:41 2018 +0800

    Enchance test coverage of dubbo cluster module (#1885)
    
    * 修改测试
    
    * modify test case of dubbo-cluster
    
    * update test
    
    * #1679 Enhance the test coverage part-1 : dubbo-cluster module
    
    * add asf header
    
    * add setup
    
    * add setup
    
    * add test case
    
    * fix test case
    
    * add ignore
---
 .../cluster/configurator/AbstractConfigurator.java |   4 -
 .../loadbalance/ConsistentHashLoadBalance.java     |   1 +
 .../absent/AbsentConfiguratorTest.java             |  27 +--
 .../cluster/configurator/consts/UrlConstant.java   |  31 +++
 .../override/OverrideConfiguratorTest.java         |  20 +-
 .../rpc/cluster/directory/MockDirInvocation.java   |  66 ++++++
 .../rpc/cluster/directory/StaticDirectoryTest.java |  65 ++++++
 .../loadbalance/ConsistentHashLoadBalanceTest.java |  30 +--
 .../loadbalance/LeastActiveBalanceTest.java        |  42 ++++
 .../cluster/loadbalance/LoadBalanceBaseTest.java   | 148 ++++++++++++
 .../rpc/cluster/loadbalance/LoadBalanceTest.java   | 204 ----------------
 .../cluster/loadbalance/RandomLoadBalanceTest.java |  57 +++++
 .../loadbalance/RoundRobinLoadBalanceTest.java     |  29 +--
 .../dubbo/rpc/cluster/merger/ResultMergerTest.java | 257 +++++++++++++++++----
 .../router/condition/ConditionRouterTest.java      | 132 +++++------
 .../cluster/router/file/FileRouterEngineTest.java  |   2 +-
 .../cluster/router/script/ScriptRouterTest.java    |  20 +-
 .../support/AbstractClusterInvokerTest.java        |   2 +-
 .../support/FailSafeClusterInvokerTest.java        |   2 +-
 .../support/FailbackClusterInvokerTest.java        |   2 +-
 .../support/FailfastClusterInvokerTest.java        |   2 +-
 .../cluster/support/ForkingClusterInvokerTest.java |   2 +-
 .../support/wrapper/MockClusterInvokerTest.java    |   2 +-
 .../extensionloader/ExtensionLoaderTest.java       |   2 +-
 .../ExtensionLoader_Adaptive_Test.java             |   2 +-
 .../ext6_inject/impl/Ext6Impl1.java                |   2 +-
 .../com/alibaba/dubbo/common/json/JSONTest.java    |   2 +-
 .../alibaba/dubbo/config/ReferenceConfigTest.java  |   2 +-
 .../com/alibaba/dubbo/config/url/UrlTestBase.java  |   2 +-
 .../alibaba/dubbo/config/spring/ConfigTest.java    |   2 +-
 .../support/AbstractRegistryFactoryTest.java       |   2 +-
 .../remoting/buffer/DirectChannelBufferTest.java   |   2 +-
 .../remoting/buffer/HeapChannelBufferTest.java     |   2 +-
 .../dubbo/remoting/codec/ExchangeCodecTest.java    |   2 +-
 .../dubbo/remoting/codec/TelnetCodecTest.java      |   2 +-
 .../handler/ConnectChannelHandlerTest.java         |   2 +-
 .../handler/WrappedChannelHandlerTest.java         |   2 +-
 .../transport/mina/ClientToServerTest.java         |   2 +-
 .../support/header/HeartbeatHandlerTest.java       |   2 +-
 .../transport/netty/ClientToServerTest.java        |   2 +-
 .../protocol/dubbo/DubboInvokerAvilableTest.java   |   2 +-
 .../rpc/protocol/dubbo/DubboProtocolTest.java      |   4 +-
 .../rpc/protocol/dubbo/ImplicitCallBackTest.java   |   2 +-
 .../rpc/protocol/injvm/InjvmProtocolTest.java      |   4 +-
 .../dubbo/rpc/protocol/rmi/RmiProtocolTest.java    |   2 +-
 .../dubbo/examples/validation/ValidationTest.java  |   2 +-
 46 files changed, 784 insertions(+), 413 deletions(-)

diff --git 
a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/AbstractConfigurator.java
 
b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/AbstractConfigurator.java
index a213375..42b688b 100644
--- 
a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/AbstractConfigurator.java
+++ 
b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/AbstractConfigurator.java
@@ -40,10 +40,6 @@ public abstract class AbstractConfigurator implements 
Configurator {
         this.configuratorUrl = url;
     }
 
-    public static void main(String[] args) {
-        System.out.println(URL.encode("timeout=100"));
-    }
-
     @Override
     public URL getUrl() {
         return configuratorUrl;
diff --git 
a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/ConsistentHashLoadBalance.java
 
b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/ConsistentHashLoadBalance.java
index 595cec9..d65113b 100644
--- 
a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/ConsistentHashLoadBalance.java
+++ 
b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/ConsistentHashLoadBalance.java
@@ -36,6 +36,7 @@ import java.util.concurrent.ConcurrentMap;
  *
  */
 public class ConsistentHashLoadBalance extends AbstractLoadBalance {
+    public static final String NAME = "consistenthash";
 
     private final ConcurrentMap<String, ConsistentHashSelector<?>> selectors = 
new ConcurrentHashMap<String, ConsistentHashSelector<?>>();
 
diff --git 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/configurator/absent/AbsentConfiguratorTest.java
 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/configurator/absent/AbsentConfiguratorTest.java
index e6d4107..7dc3eff 100644
--- 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/configurator/absent/AbsentConfiguratorTest.java
+++ 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/configurator/absent/AbsentConfiguratorTest.java
@@ -18,49 +18,50 @@ package com.alibaba.dubbo.rpc.cluster.configurator.absent;
 
 import com.alibaba.dubbo.common.URL;
 import com.alibaba.dubbo.common.utils.NetUtils;
+import com.alibaba.dubbo.rpc.cluster.configurator.consts.UrlConstant;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Test;
 
 /**
  * OverrideConfiguratorTest
- *
  */
 public class AbsentConfiguratorTest {
 
+
     @Test
-    public void testOverride_Application() {
+    public void testOverrideApplication() {
         AbsentConfigurator configurator = new 
AbsentConfigurator(URL.valueOf("override://foo@0.0.0.0/com.foo.BarService?timeout=200"));
 
-        URL url = 
configurator.configure(URL.valueOf("dubbo://10.20.153.10:20880/com.foo.BarService?application=foo&side=consumer"));
+        URL url = 
configurator.configure(URL.valueOf(UrlConstant.URL_CONSUMER));
         Assert.assertEquals("200", url.getParameter("timeout"));
 
-        url = 
configurator.configure(URL.valueOf("dubbo://10.20.153.10:20880/com.foo.BarService?application=foo&timeout=1000&side=consumer"));
+        url = configurator.configure(URL.valueOf(UrlConstant.URL_ONE));
         Assert.assertEquals("1000", url.getParameter("timeout"));
 
-        url = 
configurator.configure(URL.valueOf("dubbo://10.20.153.11:20880/com.foo.BarService?application=bar&side=consumer"));
+        url = 
configurator.configure(URL.valueOf(UrlConstant.APPLICATION_BAR_SIDE_CONSUMER_11));
         Assert.assertNull(url.getParameter("timeout"));
 
-        url = 
configurator.configure(URL.valueOf("dubbo://10.20.153.11:20880/com.foo.BarService?application=bar&timeout=1000&side=consumer"));
+        url = 
configurator.configure(URL.valueOf(UrlConstant.TIMEOUT_1000_SIDE_CONSUMER_11));
         Assert.assertEquals("1000", url.getParameter("timeout"));
     }
 
     @Test
-    public void testOverride_Host() {
+    public void testOverrideHost() {
         AbsentConfigurator configurator = new 
AbsentConfigurator(URL.valueOf("override://" + NetUtils.getLocalHost() + 
"/com.foo.BarService?timeout=200"));
 
-        URL url = 
configurator.configure(URL.valueOf("dubbo://10.20.153.10:20880/com.foo.BarService?application=foo&side=consumer"));
+        URL url = 
configurator.configure(URL.valueOf(UrlConstant.URL_CONSUMER));
         Assert.assertEquals("200", url.getParameter("timeout"));
 
-        url = 
configurator.configure(URL.valueOf("dubbo://10.20.153.10:20880/com.foo.BarService?application=foo&timeout=1000&side=consumer"));
+        url = configurator.configure(URL.valueOf(UrlConstant.URL_ONE));
         Assert.assertEquals("1000", url.getParameter("timeout"));
 
-        AbsentConfigurator configurator1 = new 
AbsentConfigurator(URL.valueOf("override://10.20.153.10/com.foo.BarService?timeout=200"));
+        AbsentConfigurator configurator1 = new 
AbsentConfigurator(URL.valueOf(UrlConstant.SERVICE_TIMEOUT_200));
 
-        url = 
configurator1.configure(URL.valueOf("dubbo://10.20.153.10:20880/com.foo.BarService?application=bar&side=consumer"));
+        url = 
configurator1.configure(URL.valueOf(UrlConstant.APPLICATION_BAR_SIDE_CONSUMER_10));
         Assert.assertNull(url.getParameter("timeout"));
 
-        url = 
configurator1.configure(URL.valueOf("dubbo://10.20.153.10:20880/com.foo.BarService?application=bar&timeout=1000&side=consumer"));
+        url = 
configurator1.configure(URL.valueOf(UrlConstant.TIMEOUT_1000_SIDE_CONSUMER_10));
         Assert.assertEquals("1000", url.getParameter("timeout"));
     }
 
diff --git 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/configurator/consts/UrlConstant.java
 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/configurator/consts/UrlConstant.java
new file mode 100644
index 0000000..3f8e0ec
--- /dev/null
+++ 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/configurator/consts/UrlConstant.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.alibaba.dubbo.rpc.cluster.configurator.consts;
+
+/**
+ * test case url constant
+ */
+public class UrlConstant {
+    public static final String URL_CONSUMER = 
"dubbo://10.20.153.10:20880/com.foo.BarService?application=foo&side=consumer";
+    public static final String URL_ONE = 
"dubbo://10.20.153.10:20880/com.foo.BarService?application=foo&timeout=1000&side=consumer";
+    public static final String APPLICATION_BAR_SIDE_CONSUMER_11 = 
"dubbo://10.20.153.11:20880/com.foo.BarService?application=bar&side=consumer";
+    public static final String TIMEOUT_1000_SIDE_CONSUMER_11 = 
"dubbo://10.20.153.11:20880/com.foo.BarService?application=bar&timeout=1000&side=consumer";
+    public static final String SERVICE_TIMEOUT_200 = 
"override://10.20.153.10/com.foo.BarService?timeout=200";
+    public static final String APPLICATION_BAR_SIDE_CONSUMER_10 = 
"dubbo://10.20.153.10:20880/com.foo.BarService?application=bar&side=consumer";
+    public static final String TIMEOUT_1000_SIDE_CONSUMER_10 = 
"dubbo://10.20.153.10:20880/com.foo.BarService?application=bar&timeout=1000&side=consumer";
+
+}
diff --git 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/configurator/override/OverrideConfiguratorTest.java
 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/configurator/override/OverrideConfiguratorTest.java
index 3e62443..ada9d7e 100644
--- 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/configurator/override/OverrideConfiguratorTest.java
+++ 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/configurator/override/OverrideConfiguratorTest.java
@@ -19,13 +19,13 @@ package com.alibaba.dubbo.rpc.cluster.configurator.override;
 import com.alibaba.dubbo.common.URL;
 import com.alibaba.dubbo.common.utils.NetUtils;
 import com.alibaba.dubbo.rpc.cluster.configurator.absent.AbsentConfigurator;
+import com.alibaba.dubbo.rpc.cluster.configurator.consts.UrlConstant;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Test;
 
 /**
  * OverrideConfiguratorTest
- *
  */
 public class OverrideConfiguratorTest {
 
@@ -33,16 +33,16 @@ public class OverrideConfiguratorTest {
     public void testOverride_Application() {
         OverrideConfigurator configurator = new 
OverrideConfigurator(URL.valueOf("override://foo@0.0.0.0/com.foo.BarService?timeout=200"));
 
-        URL url = 
configurator.configure(URL.valueOf("dubbo://10.20.153.10:20880/com.foo.BarService?application=foo&side=consumer"));
+        URL url = 
configurator.configure(URL.valueOf(UrlConstant.URL_CONSUMER));
         Assert.assertEquals("200", url.getParameter("timeout"));
 
-        url = 
configurator.configure(URL.valueOf("dubbo://10.20.153.10:20880/com.foo.BarService?application=foo&timeout=1000&side=consumer"));
+        url = configurator.configure(URL.valueOf(UrlConstant.URL_ONE));
         Assert.assertEquals("200", url.getParameter("timeout"));
 
-        url = 
configurator.configure(URL.valueOf("dubbo://10.20.153.11:20880/com.foo.BarService?application=bar&side=consumer"));
+        url = 
configurator.configure(URL.valueOf(UrlConstant.APPLICATION_BAR_SIDE_CONSUMER_11));
         Assert.assertNull(url.getParameter("timeout"));
 
-        url = 
configurator.configure(URL.valueOf("dubbo://10.20.153.11:20880/com.foo.BarService?application=bar&timeout=1000&side=consumer"));
+        url = 
configurator.configure(URL.valueOf(UrlConstant.TIMEOUT_1000_SIDE_CONSUMER_11));
         Assert.assertEquals("1000", url.getParameter("timeout"));
     }
 
@@ -50,18 +50,18 @@ public class OverrideConfiguratorTest {
     public void testOverride_Host() {
         OverrideConfigurator configurator = new 
OverrideConfigurator(URL.valueOf("override://" + NetUtils.getLocalHost() + 
"/com.foo.BarService?timeout=200"));
 
-        URL url = 
configurator.configure(URL.valueOf("dubbo://10.20.153.10:20880/com.foo.BarService?application=foo&side=consumer"));
+        URL url = 
configurator.configure(URL.valueOf(UrlConstant.URL_CONSUMER));
         Assert.assertEquals("200", url.getParameter("timeout"));
 
-        url = 
configurator.configure(URL.valueOf("dubbo://10.20.153.10:20880/com.foo.BarService?application=foo&timeout=1000&side=consumer"));
+        url = configurator.configure(URL.valueOf(UrlConstant.URL_ONE));
         Assert.assertEquals("200", url.getParameter("timeout"));
 
         AbsentConfigurator configurator1 = new 
AbsentConfigurator(URL.valueOf("override://10.20.153.10/com.foo.BarService?timeout=200"));
 
-        url = 
configurator1.configure(URL.valueOf("dubbo://10.20.153.10:20880/com.foo.BarService?application=bar&side=consumer"));
+        url = 
configurator1.configure(URL.valueOf(UrlConstant.APPLICATION_BAR_SIDE_CONSUMER_10));
         Assert.assertNull(url.getParameter("timeout"));
 
-        url = 
configurator1.configure(URL.valueOf("dubbo://10.20.153.10:20880/com.foo.BarService?application=bar&timeout=1000&side=consumer"));
+        url = 
configurator1.configure(URL.valueOf(UrlConstant.TIMEOUT_1000_SIDE_CONSUMER_10));
         Assert.assertEquals("1000", url.getParameter("timeout"));
     }
 
diff --git 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/directory/MockDirInvocation.java
 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/directory/MockDirInvocation.java
new file mode 100644
index 0000000..4c900fb
--- /dev/null
+++ 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/directory/MockDirInvocation.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.alibaba.dubbo.rpc.cluster.directory;
+
+import com.alibaba.dubbo.common.Constants;
+import com.alibaba.dubbo.rpc.Invocation;
+import com.alibaba.dubbo.rpc.Invoker;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * MockInvocation.java
+ */
+public class MockDirInvocation implements Invocation {
+
+    public String getMethodName() {
+        return "echo";
+    }
+
+    public Class<?>[] getParameterTypes() {
+        return new Class[]{String.class};
+    }
+
+    public Object[] getArguments() {
+        return new Object[]{"aa"};
+    }
+
+    public Map<String, String> getAttachments() {
+        Map<String, String> attachments = new HashMap<String, String>();
+        attachments.put(Constants.PATH_KEY, "dubbo");
+        attachments.put(Constants.GROUP_KEY, "dubbo");
+        attachments.put(Constants.VERSION_KEY, "1.0.0");
+        attachments.put(Constants.DUBBO_VERSION_KEY, "1.0.0");
+        attachments.put(Constants.TOKEN_KEY, "sfag");
+        attachments.put(Constants.TIMEOUT_KEY, "1000");
+        return attachments;
+    }
+
+    public Invoker<?> getInvoker() {
+        return null;
+    }
+
+    public String getAttachment(String key) {
+        return getAttachments().get(key);
+    }
+
+    public String getAttachment(String key, String defaultValue) {
+        return getAttachments().get(key);
+    }
+
+}
\ No newline at end of file
diff --git 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/directory/StaticDirectoryTest.java
 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/directory/StaticDirectoryTest.java
new file mode 100644
index 0000000..29839b2
--- /dev/null
+++ 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/directory/StaticDirectoryTest.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.alibaba.dubbo.rpc.cluster.directory;
+
+import com.alibaba.dubbo.common.Constants;
+import com.alibaba.dubbo.common.URL;
+import com.alibaba.dubbo.common.utils.NetUtils;
+import com.alibaba.dubbo.rpc.Invoker;
+import com.alibaba.dubbo.rpc.RpcInvocation;
+import com.alibaba.dubbo.rpc.cluster.Router;
+import com.alibaba.dubbo.rpc.cluster.router.MockInvoker;
+import com.alibaba.dubbo.rpc.cluster.router.condition.ConditionRouterFactory;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * StaticDirectory Test
+ */
+public class StaticDirectoryTest {
+    private URL SCRIPT_URL = 
URL.valueOf("condition://0.0.0.0/com.foo.BarService");
+
+    private URL getRouteUrl(String rule) {
+        return SCRIPT_URL.addParameterAndEncoded(Constants.RULE_KEY, rule);
+    }
+
+    @Test
+    public void testStaticDirectory() {
+        Router router = new ConditionRouterFactory().getRouter(getRouteUrl(" 
=> " + " host = " + NetUtils.getLocalHost()));
+        List<Router> routers = new ArrayList<Router>();
+        routers.add(router);
+        List<Invoker<String>> invokers = new ArrayList<Invoker<String>>();
+        Invoker<String> invoker1 = new 
MockInvoker<String>(URL.valueOf("dubbo://10.20.3.3:20880/com.foo.BarService"));
+        Invoker<String> invoker2 = new 
MockInvoker<String>(URL.valueOf("dubbo://" + NetUtils.getLocalHost() + 
":20880/com.foo.BarService"));
+        Invoker<String> invoker3 = new 
MockInvoker<String>(URL.valueOf("dubbo://" + NetUtils.getLocalHost() + 
":20880/com.foo.BarService"));
+        invokers.add(invoker1);
+        invokers.add(invoker2);
+        invokers.add(invoker3);
+        List<Invoker<String>> filteredInvokers = router.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
+        StaticDirectory staticDirectory = new 
StaticDirectory(filteredInvokers);
+        Boolean isAvailable = staticDirectory.isAvailable();
+        Assert.assertTrue(!isAvailable);
+        List<Invoker> newInvokers = staticDirectory.list(new 
MockDirInvocation());
+        Assert.assertTrue(newInvokers.size() > 0);
+        staticDirectory.destroy();
+        Assert.assertTrue(newInvokers.size() == 0);
+    }
+}
diff --git 
a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/buffer/DirectChannelBufferTest.java
 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/loadbalance/ConsistentHashLoadBalanceTest.java
similarity index 51%
copy from 
dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/buffer/DirectChannelBufferTest.java
copy to 
dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/loadbalance/ConsistentHashLoadBalanceTest.java
index ff623ef..4cfaffb 100644
--- 
a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/buffer/DirectChannelBufferTest.java
+++ 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/loadbalance/ConsistentHashLoadBalanceTest.java
@@ -14,23 +14,27 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.alibaba.dubbo.remoting.buffer;
+package com.alibaba.dubbo.rpc.cluster.loadbalance;
 
-import junit.framework.Assert;
+import com.alibaba.dubbo.rpc.Invoker;
 
-public class DirectChannelBufferTest extends AbstractChannelBufferTest {
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
 
-    private ChannelBuffer buffer;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicLong;
 
-    @Override
-    protected ChannelBuffer newBuffer(int capacity) {
-        buffer = ChannelBuffers.directBuffer(capacity);
-        Assert.assertEquals(0, buffer.writerIndex());
-        return buffer;
+public class ConsistentHashLoadBalanceTest extends LoadBalanceBaseTest {
+    @Ignore
+    @Test
+    public void testConsistentHashLoadBalance() {
+        int runs = 10000;
+        Map<Invoker, AtomicLong> counter = getInvokeCounter(runs, 
ConsistentHashLoadBalance.NAME);
+        for (Invoker minvoker : counter.keySet()) {
+            Long count = counter.get(minvoker).get();
+            Assert.assertTrue("abs diff should < avg", Math.abs(count - runs / 
(0f + invokers.size())) < runs / (0f + invokers.size()));
+        }
     }
 
-    @Override
-    protected ChannelBuffer[] components() {
-        return new ChannelBuffer[]{buffer};
-    }
 }
diff --git 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/loadbalance/LeastActiveBalanceTest.java
 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/loadbalance/LeastActiveBalanceTest.java
new file mode 100644
index 0000000..4d82c86
--- /dev/null
+++ 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/loadbalance/LeastActiveBalanceTest.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License")); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.alibaba.dubbo.rpc.cluster.loadbalance;
+
+import com.alibaba.dubbo.rpc.Invoker;
+
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicLong;
+
+public class LeastActiveBalanceTest extends LoadBalanceBaseTest {
+    @Ignore
+    @Test
+    public void testLeastActiveLoadBalance_select() {
+        int runs = 10000;
+        Map<Invoker, AtomicLong> counter = getInvokeCounter(runs, 
LeastActiveLoadBalance.NAME);
+        for (Invoker minvoker : counter.keySet()) {
+            Long count = counter.get(minvoker).get();
+            //            System.out.println(count);
+            Assert.assertTrue("abs diff shoud < avg",
+                    Math.abs(count - runs / (0f + invokers.size())) < runs / 
(0f + invokers.size()));
+        }
+    }
+
+}
diff --git 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/loadbalance/LoadBalanceBaseTest.java
 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/loadbalance/LoadBalanceBaseTest.java
new file mode 100644
index 0000000..e7a22c5
--- /dev/null
+++ 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/loadbalance/LoadBalanceBaseTest.java
@@ -0,0 +1,148 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License")); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.alibaba.dubbo.rpc.cluster.loadbalance;
+
+import com.alibaba.dubbo.common.Constants;
+import com.alibaba.dubbo.common.URL;
+import com.alibaba.dubbo.common.extension.ExtensionLoader;
+import com.alibaba.dubbo.rpc.Invocation;
+import com.alibaba.dubbo.rpc.Invoker;
+import com.alibaba.dubbo.rpc.cluster.LoadBalance;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicLong;
+
+import static org.mockito.BDDMockito.given;
+import static org.mockito.Mockito.mock;
+
+/**
+ * RoundRobinLoadBalanceTest
+ */
+@SuppressWarnings({"unchecked", "rawtypes"})
+public class LoadBalanceBaseTest {
+    Invocation invocation;
+    List<Invoker<LoadBalanceBaseTest>> invokers = new 
ArrayList<Invoker<LoadBalanceBaseTest>>();
+    Invoker<LoadBalanceBaseTest> invoker1;
+    Invoker<LoadBalanceBaseTest> invoker2;
+    Invoker<LoadBalanceBaseTest> invoker3;
+    Invoker<LoadBalanceBaseTest> invoker4;
+    Invoker<LoadBalanceBaseTest> invoker5;
+
+    /**
+     * @throws java.lang.Exception
+     */
+    @BeforeClass
+    public static void setUpBeforeClass() throws Exception {
+    }
+
+    /**
+     * @throws java.lang.Exception
+     */
+    @Before
+    public void setUp() throws Exception {
+
+        invocation = mock(Invocation.class);
+        given(invocation.getMethodName()).willReturn("method1");
+
+        invoker1 = mock(Invoker.class);
+        invoker2 = mock(Invoker.class);
+        invoker3 = mock(Invoker.class);
+        invoker4 = mock(Invoker.class);
+        invoker5 = mock(Invoker.class);
+
+        URL url1 = URL.valueOf("test://127.0.0.1:1/DemoService");
+        URL url2 = URL.valueOf("test://127.0.0.1:2/DemoService");
+        URL url3 = URL.valueOf("test://127.0.0.1:3/DemoService");
+        URL url4 = URL.valueOf("test://127.0.0.1:4/DemoService");
+        URL url5 = URL.valueOf("test://127.0.0.1:5/DemoService");
+
+        given(invoker1.isAvailable()).willReturn(true);
+        given(invoker1.getInterface()).willReturn(LoadBalanceBaseTest.class);
+        given(invoker1.getUrl()).willReturn(url1);
+
+        given(invoker2.isAvailable()).willReturn(true);
+        given(invoker2.getInterface()).willReturn(LoadBalanceBaseTest.class);
+        given(invoker2.getUrl()).willReturn(url2);
+
+        given(invoker3.isAvailable()).willReturn(true);
+        given(invoker3.getInterface()).willReturn(LoadBalanceBaseTest.class);
+        given(invoker3.getUrl()).willReturn(url3);
+
+        given(invoker4.isAvailable()).willReturn(true);
+        given(invoker4.getInterface()).willReturn(LoadBalanceBaseTest.class);
+        given(invoker4.getUrl()).willReturn(url4);
+
+        given(invoker5.isAvailable()).willReturn(true);
+        given(invoker5.getInterface()).willReturn(LoadBalanceBaseTest.class);
+        given(invoker5.getUrl()).willReturn(url5);
+
+        invokers.add(invoker1);
+        invokers.add(invoker2);
+        invokers.add(invoker3);
+        invokers.add(invoker4);
+        invokers.add(invoker5);
+    }
+
+    public Map<Invoker, AtomicLong> getInvokeCounter(int runs, String 
loadbalanceName) {
+        Map<Invoker, AtomicLong> counter = new ConcurrentHashMap<Invoker, 
AtomicLong>();
+        LoadBalance lb = 
ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(loadbalanceName);
+        for (Invoker invoker : invokers) {
+            counter.put(invoker, new AtomicLong(0));
+        }
+        for (int i = 0; i < runs; i++) {
+            Invoker sinvoker = lb.select(invokers, invokers.get(0).getUrl(), 
invocation);
+            counter.get(sinvoker).incrementAndGet();
+        }
+        return counter;
+    }
+
+    @Test
+    public void testLoadBalanceWarmup() {
+        Assert.assertEquals(1, calculateDefaultWarmupWeight(0));
+        Assert.assertEquals(1, calculateDefaultWarmupWeight(13));
+        Assert.assertEquals(1, calculateDefaultWarmupWeight(6 * 1000));
+        Assert.assertEquals(2, calculateDefaultWarmupWeight(12 * 1000));
+        Assert.assertEquals(10, calculateDefaultWarmupWeight(60 * 1000));
+        Assert.assertEquals(50, calculateDefaultWarmupWeight(5 * 60 * 1000));
+        Assert.assertEquals(50, calculateDefaultWarmupWeight(5 * 60 * 1000 + 
23));
+        Assert.assertEquals(50, calculateDefaultWarmupWeight(5 * 60 * 1000 + 
5999));
+        Assert.assertEquals(51, calculateDefaultWarmupWeight(5 * 60 * 1000 + 
6000));
+        Assert.assertEquals(90, calculateDefaultWarmupWeight(9 * 60 * 1000));
+        Assert.assertEquals(98, calculateDefaultWarmupWeight(10 * 60 * 1000 - 
12 * 1000));
+        Assert.assertEquals(99, calculateDefaultWarmupWeight(10 * 60 * 1000 - 
6 * 1000));
+        Assert.assertEquals(100, calculateDefaultWarmupWeight(10 * 60 * 1000));
+        Assert.assertEquals(100, calculateDefaultWarmupWeight(20 * 60 * 1000));
+    }
+
+    /**
+     * handle default data
+     *
+     * @return
+     */
+    private static int calculateDefaultWarmupWeight(int uptime) {
+        return AbstractLoadBalance.calculateWarmupWeight(uptime, 
Constants.DEFAULT_WARMUP, Constants.DEFAULT_WEIGHT);
+    }
+
+}
\ No newline at end of file
diff --git 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/loadbalance/LoadBalanceTest.java
 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/loadbalance/LoadBalanceTest.java
deleted file mode 100644
index 442b108..0000000
--- 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/loadbalance/LoadBalanceTest.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.alibaba.dubbo.rpc.cluster.loadbalance;
-
-import com.alibaba.dubbo.common.Constants;
-import com.alibaba.dubbo.common.URL;
-import com.alibaba.dubbo.common.extension.ExtensionLoader;
-import com.alibaba.dubbo.rpc.Invocation;
-import com.alibaba.dubbo.rpc.Invoker;
-import com.alibaba.dubbo.rpc.RpcStatus;
-import com.alibaba.dubbo.rpc.cluster.LoadBalance;
-
-import junit.framework.Assert;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicLong;
-
-import static org.mockito.BDDMockito.given;
-import static org.mockito.Mockito.mock;
-
-/**
- * RoundRobinLoadBalanceTest
- *
- */
-@SuppressWarnings({"unchecked", "rawtypes"})
-public class LoadBalanceTest {
-    Invocation invocation;
-    List<Invoker<LoadBalanceTest>> invokers = new 
ArrayList<Invoker<LoadBalanceTest>>();
-    Invoker<LoadBalanceTest> invoker1;
-    Invoker<LoadBalanceTest> invoker2;
-    Invoker<LoadBalanceTest> invoker3;
-    Invoker<LoadBalanceTest> invoker4;
-    Invoker<LoadBalanceTest> invoker5;
-
-    /**
-     * @throws java.lang.Exception
-     */
-    @BeforeClass
-    public static void setUpBeforeClass() throws Exception {
-    }
-
-    /**
-     * @throws java.lang.Exception
-     */
-    @Before
-    public void setUp() throws Exception {
-
-        invocation = mock(Invocation.class);
-        given(invocation.getMethodName()).willReturn("method1");
-
-        invoker1 = mock(Invoker.class);
-        invoker2 = mock(Invoker.class);
-        invoker3 = mock(Invoker.class);
-        invoker4 = mock(Invoker.class);
-        invoker5 = mock(Invoker.class);
-
-        URL url1 = URL.valueOf("test://127.0.0.1:1/DemoService");
-        URL url2 = URL.valueOf("test://127.0.0.1:2/DemoService");
-        URL url3 = URL.valueOf("test://127.0.0.1:3/DemoService");
-        URL url4 = URL.valueOf("test://127.0.0.1:4/DemoService");
-        URL url5 = URL.valueOf("test://127.0.0.1:5/DemoService");
-
-        given(invoker1.isAvailable()).willReturn(true);
-        given(invoker1.getInterface()).willReturn(LoadBalanceTest.class);
-        given(invoker1.getUrl()).willReturn(url1);
-
-        given(invoker2.isAvailable()).willReturn(true);
-        given(invoker2.getInterface()).willReturn(LoadBalanceTest.class);
-        given(invoker2.getUrl()).willReturn(url2);
-
-        given(invoker3.isAvailable()).willReturn(true);
-        given(invoker3.getInterface()).willReturn(LoadBalanceTest.class);
-        given(invoker3.getUrl()).willReturn(url3);
-
-        given(invoker4.isAvailable()).willReturn(true);
-        given(invoker4.getInterface()).willReturn(LoadBalanceTest.class);
-        given(invoker4.getUrl()).willReturn(url4);
-
-        given(invoker5.isAvailable()).willReturn(true);
-        given(invoker5.getInterface()).willReturn(LoadBalanceTest.class);
-        given(invoker5.getUrl()).willReturn(url5);
-
-        invokers.add(invoker1);
-        invokers.add(invoker2);
-        invokers.add(invoker3);
-        invokers.add(invoker4);
-        invokers.add(invoker5);
-    }
-
-    @Test
-    public void testRoundRobinLoadBalance_select() {
-        int runs = 10000;
-        Map<Invoker, AtomicLong> counter = getInvokeCounter(runs, 
RoundRobinLoadBalance.NAME);
-        for (Invoker minvoker : counter.keySet()) {
-            Long count = counter.get(minvoker).get();
-            Assert.assertTrue("abs diff shoud < 1", Math.abs(count - runs / 
(0f + invokers.size())) < 1f);
-        }
-    }
-
-    @Test
-    public void testRandomLoadBalance_select() {
-        int runs = 1000;
-        Map<Invoker, AtomicLong> counter = getInvokeCounter(runs, 
RandomLoadBalance.NAME);
-        for (Invoker minvoker : counter.keySet()) {
-            Long count = counter.get(minvoker).get();
-            // System.out.println(count);
-            Assert.assertTrue("abs diff shoud < avg",
-                Math.abs(count - runs / (0f + invokers.size())) < runs / (0f + 
invokers.size()));
-        }
-
-        for (int i = 0; i < 5; i++) {
-            for (int j = 0; j <= i; j++) {
-                RpcStatus.beginCount(invokers.get(i).getUrl(), 
invocation.getMethodName());
-            }
-        }
-        counter = getInvokeCounter(runs, LeastActiveLoadBalance.NAME);
-        for (Invoker minvoker : counter.keySet()) {
-            Long count = counter.get(minvoker).get();
-        }
-        Assert.assertEquals(runs, counter.get(invoker1).intValue());
-        Assert.assertEquals(0, counter.get(invoker2).intValue());
-        Assert.assertEquals(0, counter.get(invoker3).intValue());
-        Assert.assertEquals(0, counter.get(invoker4).intValue());
-        Assert.assertEquals(0, counter.get(invoker5).intValue());
-    }
-
-    @Test
-    public void testLeastActiveLoadBalance_select() {
-        int runs = 10000;
-        Map<Invoker, AtomicLong> counter = getInvokeCounter(runs, 
LeastActiveLoadBalance.NAME);
-        for (Invoker minvoker : counter.keySet()) {
-            Long count = counter.get(minvoker).get();
-            //            System.out.println(count);
-            Assert.assertTrue("abs diff shoud < avg",
-                Math.abs(count - runs / (0f + invokers.size())) < runs / (0f + 
invokers.size()));
-        }
-    }
-
-    public Map<Invoker, AtomicLong> getInvokeCounter(int runs, String 
loadbalanceName) {
-        Map<Invoker, AtomicLong> counter = new ConcurrentHashMap<Invoker, 
AtomicLong>();
-        LoadBalance lb = 
ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(loadbalanceName);
-        for (Invoker invoker : invokers) {
-            counter.put(invoker, new AtomicLong(0));
-        }
-        for (int i = 0; i < runs; i++) {
-            Invoker sinvoker = lb.select(invokers, invokers.get(0).getUrl(), 
invocation);
-            counter.get(sinvoker).incrementAndGet();
-        }
-        return counter;
-    }
-
-    @Test
-    public void testLoadBalanceWarmup() {
-        Assert.assertEquals(1,
-            AbstractLoadBalance.calculateWarmupWeight(0, 
Constants.DEFAULT_WARMUP, Constants.DEFAULT_WEIGHT));
-        Assert.assertEquals(1,
-            AbstractLoadBalance.calculateWarmupWeight(13, 
Constants.DEFAULT_WARMUP, Constants.DEFAULT_WEIGHT));
-        Assert.assertEquals(1,
-            AbstractLoadBalance.calculateWarmupWeight(6 * 1000, 
Constants.DEFAULT_WARMUP, Constants.DEFAULT_WEIGHT));
-        Assert.assertEquals(2,
-            AbstractLoadBalance.calculateWarmupWeight(12 * 1000, 
Constants.DEFAULT_WARMUP, Constants.DEFAULT_WEIGHT));
-        Assert.assertEquals(10,
-            AbstractLoadBalance.calculateWarmupWeight(60 * 1000, 
Constants.DEFAULT_WARMUP, Constants.DEFAULT_WEIGHT));
-        Assert.assertEquals(50, AbstractLoadBalance
-            .calculateWarmupWeight(5 * 60 * 1000, Constants.DEFAULT_WARMUP, 
Constants.DEFAULT_WEIGHT));
-        Assert.assertEquals(50, AbstractLoadBalance
-            .calculateWarmupWeight(5 * 60 * 1000 + 23, 
Constants.DEFAULT_WARMUP, Constants.DEFAULT_WEIGHT));
-        Assert.assertEquals(50, AbstractLoadBalance
-            .calculateWarmupWeight(5 * 60 * 1000 + 5999, 
Constants.DEFAULT_WARMUP, Constants.DEFAULT_WEIGHT));
-        Assert.assertEquals(51, AbstractLoadBalance
-            .calculateWarmupWeight(5 * 60 * 1000 + 6000, 
Constants.DEFAULT_WARMUP, Constants.DEFAULT_WEIGHT));
-        Assert.assertEquals(90, AbstractLoadBalance
-            .calculateWarmupWeight(9 * 60 * 1000, Constants.DEFAULT_WARMUP, 
Constants.DEFAULT_WEIGHT));
-        Assert.assertEquals(98, AbstractLoadBalance
-            .calculateWarmupWeight(10 * 60 * 1000 - 12 * 1000, 
Constants.DEFAULT_WARMUP, Constants.DEFAULT_WEIGHT));
-        Assert.assertEquals(99, AbstractLoadBalance
-            .calculateWarmupWeight(10 * 60 * 1000 - 6 * 1000, 
Constants.DEFAULT_WARMUP, Constants.DEFAULT_WEIGHT));
-        Assert.assertEquals(100, AbstractLoadBalance
-            .calculateWarmupWeight(10 * 60 * 1000, Constants.DEFAULT_WARMUP, 
Constants.DEFAULT_WEIGHT));
-        Assert.assertEquals(100, AbstractLoadBalance
-            .calculateWarmupWeight(20 * 60 * 1000, Constants.DEFAULT_WARMUP, 
Constants.DEFAULT_WEIGHT));
-    }
-
-}
\ No newline at end of file
diff --git 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/loadbalance/RandomLoadBalanceTest.java
 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/loadbalance/RandomLoadBalanceTest.java
new file mode 100644
index 0000000..a49dfda
--- /dev/null
+++ 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/loadbalance/RandomLoadBalanceTest.java
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License")); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.alibaba.dubbo.rpc.cluster.loadbalance;
+
+import com.alibaba.dubbo.rpc.Invoker;
+import com.alibaba.dubbo.rpc.RpcStatus;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicLong;
+
+/**
+ * RandomLoadBalance Test
+ */
+public class RandomLoadBalanceTest extends LoadBalanceBaseTest {
+    @Test
+    public void testRandomLoadBalanceSelect() {
+        int runs = 1000;
+        Map<Invoker, AtomicLong> counter = getInvokeCounter(runs, 
RandomLoadBalance.NAME);
+        for (Invoker minvoker : counter.keySet()) {
+            Long count = counter.get(minvoker).get();
+            Assert.assertTrue("abs diff should < avg", Math.abs(count - runs / 
(0f + invokers.size())) < runs / (0f + invokers.size()));
+        }
+
+        for (int i = 0; i < 5; i++) {
+            for (int j = 0; j <= i; j++) {
+                RpcStatus.beginCount(invokers.get(i).getUrl(), 
invocation.getMethodName());
+            }
+        }
+        counter = getInvokeCounter(runs, LeastActiveLoadBalance.NAME);
+        for (Invoker minvoker : counter.keySet()) {
+            Long count = counter.get(minvoker).get();
+        }
+        Assert.assertEquals(runs, counter.get(invoker1).intValue());
+        Assert.assertEquals(0, counter.get(invoker2).intValue());
+        Assert.assertEquals(0, counter.get(invoker3).intValue());
+        Assert.assertEquals(0, counter.get(invoker4).intValue());
+        Assert.assertEquals(0, counter.get(invoker5).intValue());
+    }
+
+}
diff --git 
a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/buffer/DirectChannelBufferTest.java
 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/loadbalance/RoundRobinLoadBalanceTest.java
similarity index 54%
copy from 
dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/buffer/DirectChannelBufferTest.java
copy to 
dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/loadbalance/RoundRobinLoadBalanceTest.java
index ff623ef..ffc4e6c 100644
--- 
a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/buffer/DirectChannelBufferTest.java
+++ 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/loadbalance/RoundRobinLoadBalanceTest.java
@@ -14,23 +14,24 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.alibaba.dubbo.remoting.buffer;
+package com.alibaba.dubbo.rpc.cluster.loadbalance;
 
-import junit.framework.Assert;
+import com.alibaba.dubbo.rpc.Invoker;
 
-public class DirectChannelBufferTest extends AbstractChannelBufferTest {
+import org.junit.Assert;
+import org.junit.Test;
 
-    private ChannelBuffer buffer;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicLong;
 
-    @Override
-    protected ChannelBuffer newBuffer(int capacity) {
-        buffer = ChannelBuffers.directBuffer(capacity);
-        Assert.assertEquals(0, buffer.writerIndex());
-        return buffer;
-    }
-
-    @Override
-    protected ChannelBuffer[] components() {
-        return new ChannelBuffer[]{buffer};
+public class RoundRobinLoadBalanceTest extends LoadBalanceBaseTest {
+    @Test
+    public void testRoundRobinLoadBalanceSelect() {
+        int runs = 10000;
+        Map<Invoker, AtomicLong> counter = getInvokeCounter(runs, 
RoundRobinLoadBalance.NAME);
+        for (Invoker minvoker : counter.keySet()) {
+            Long count = counter.get(minvoker).get();
+            Assert.assertTrue("abs diff should < 1", Math.abs(count - runs / 
(0f + invokers.size())) < 1f);
+        }
     }
 }
diff --git 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/merger/ResultMergerTest.java
 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/merger/ResultMergerTest.java
index 481a97f..cede590 100644
--- 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/merger/ResultMergerTest.java
+++ 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/merger/ResultMergerTest.java
@@ -21,35 +21,224 @@ import org.junit.Test;
 
 import java.lang.reflect.Array;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 public class ResultMergerTest {
+    /**
+     * ArrayMerger test
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testArrayMerger() throws Exception {
+        String[] stringArray1 = {"1", "2", "3"};
+        String[] stringArray2 = {"4", "5", "6"};
+        String[] stringArray3 = {};
+
+        Object result = ArrayMerger.INSTANCE.merge(stringArray1, stringArray2, 
stringArray3);
+        Assert.assertTrue(result.getClass().isArray());
+        Assert.assertEquals(6, Array.getLength(result));
+        Assert.assertTrue(String.class.isInstance(Array.get(result, 0)));
+        for (int i = 0; i < 6; i++) {
+            Assert.assertEquals(String.valueOf(i + 1), Array.get(result, i));
+        }
+
+        int[] intArray1 = {1, 2, 3};
+        int[] intArray2 = {4, 5, 6};
+        int[] intArray3 = {7};
+        result = MergerFactory.getMerger(int[].class).merge(intArray1, 
intArray2, intArray3);
+        Assert.assertTrue(result.getClass().isArray());
+        Assert.assertEquals(7, Array.getLength(result));
+        Assert.assertTrue(int.class == result.getClass().getComponentType());
+        for (int i = 0; i < 7; i++) {
+            Assert.assertEquals(i + 1, Array.get(result, i));
+        }
+
+    }
+
+    /**
+     * BooleanArrayMerger test
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testBooleanArrayMerger() throws Exception {
+        boolean[] arrayOne = {true, false};
+        boolean[] arrayTwo = {false};
+        boolean[] result = 
MergerFactory.getMerger(boolean[].class).merge(arrayOne, arrayTwo);
+        Assert.assertEquals(3, result.length);
+        boolean[] mergedResult = {true, false, false};
+        for (int i = 0; i < mergedResult.length; i++) {
+            Assert.assertEquals(mergedResult[i], result[i]);
+        }
+    }
+
+    /**
+     * ByteArrayMerger test
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testByteArrayMerger() throws Exception {
+        byte[] arrayOne = {1, 2};
+        byte[] arrayTwo = {1, 32};
+        byte[] result = MergerFactory.getMerger(byte[].class).merge(arrayOne, 
arrayTwo);
+        Assert.assertEquals(4, result.length);
+        byte[] mergedResult = {1, 2, 1, 32};
+        for (int i = 0; i < mergedResult.length; i++) {
+            Assert.assertEquals(mergedResult[i], result[i]);
+        }
+    }
+
+    /**
+     * CharArrayMerger test
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testCharArrayMerger() throws Exception {
+        char[] arrayOne = "hello".toCharArray();
+        char[] arrayTwo = "world".toCharArray();
+        char[] result = MergerFactory.getMerger(char[].class).merge(arrayOne, 
arrayTwo);
+        Assert.assertEquals(10, result.length);
+        char[] mergedResult = "helloworld".toCharArray();
+        for (int i = 0; i < mergedResult.length; i++) {
+            Assert.assertEquals(mergedResult[i], result[i]);
+        }
+    }
+
+    /**
+     * DoubleArrayMerger test
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testDoubleArrayMerger() throws Exception {
+        double[] arrayOne = {1.2d, 3.5d};
+        double[] arrayTwo = {2d, 34d};
+        double[] result = 
MergerFactory.getMerger(double[].class).merge(arrayOne, arrayTwo);
+        Assert.assertEquals(4, result.length);
+        double[] mergedResult = {1.2d, 3.5d, 2d, 34d};
+        for (int i = 0; i < mergedResult.length; i++) {
+            Assert.assertTrue(mergedResult[i] == result[i]);
+        }
+    }
+
+    /**
+     * FloatArrayMerger test
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testFloatArrayMerger() throws Exception {
+        float[] arrayOne = {1.2f, 3.5f};
+        float[] arrayTwo = {2f, 34f};
+        float[] result = 
MergerFactory.getMerger(float[].class).merge(arrayOne, arrayTwo);
+        Assert.assertEquals(4, result.length);
+        double[] mergedResult = {1.2f, 3.5f, 2f, 34f};
+        for (int i = 0; i < mergedResult.length; i++) {
+            Assert.assertTrue(mergedResult[i] == result[i]);
+        }
+    }
+
+    /**
+     * IntArrayMerger test
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testIntArrayMerger() throws Exception {
+        int[] arrayOne = {1, 2};
+        int[] arrayTwo = {2, 34};
+        int[] result = MergerFactory.getMerger(int[].class).merge(arrayOne, 
arrayTwo);
+        Assert.assertEquals(4, result.length);
+        double[] mergedResult = {1, 2, 2, 34};
+        for (int i = 0; i < mergedResult.length; i++) {
+            Assert.assertTrue(mergedResult[i] == result[i]);
+        }
+    }
 
+    /**
+     * ListMerger test
+     *
+     * @throws Exception
+     */
     @Test
     public void testListMerger() throws Exception {
-        List<Object> list1 = new ArrayList<Object>();
-        list1.add(null);
-        list1.add("1");
-        list1.add("2");
-        List<Object> list2 = new ArrayList<Object>();
-        list2.add("3");
-        list2.add("4");
+        List<Object> list1 = new ArrayList<Object>(){{
+            add(null);
+            add("1");
+            add("2"); 
+        }};
+        List<Object> list2 = new ArrayList<Object>(){{
+            add("3");
+            add("4");
+        }};
 
         List result = MergerFactory.getMerger(List.class).merge(list1, list2);
         Assert.assertEquals(5, result.size());
-        Assert.assertEquals(new ArrayList<String>() {
-            {
-                add(null);
-                add("1");
-                add("2");
-                add("3");
-                add("4");
-            }
-        }, result);
+        ArrayList<String> expected = new ArrayList<String>() {{
+            add(null);
+            add("1");
+            add("2");
+            add("3");
+            add("4");
+        }};
+        Assert.assertEquals(expected, result);
+    }
+
+    /**
+     * LongArrayMerger test
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testMapArrayMerger() throws Exception {
+        Map<Object, Object> mapOne = new HashMap() {{
+            put("11", 222);
+            put("223", 11);
+        }};
+        Map<Object, Object> mapTwo = new HashMap() {{
+            put("3333", 3232);
+            put("444", 2323);
+        }};
+        Map<Object, Object> result = 
MergerFactory.getMerger(Map.class).merge(mapOne, mapTwo);
+        Assert.assertEquals(4, result.size());
+        Map<Object, Object> mergedResult = new HashMap() {{
+            put("11", 222);
+            put("223", 11);
+            put("3333", 3232);
+            put("444", 2323);
+        }};
+        Assert.assertEquals(mergedResult, result);
     }
 
+    /**
+     * LongArrayMerger test
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testLongArrayMerger() throws Exception {
+        long[] arrayOne = {1l, 2l};
+        long[] arrayTwo = {2l, 34l};
+        long[] result = MergerFactory.getMerger(long[].class).merge(arrayOne, 
arrayTwo);
+        Assert.assertEquals(4, result.length);
+        double[] mergedResult = {1l, 2l, 2l, 34l};
+        for (int i = 0; i < mergedResult.length; i++) {
+            Assert.assertTrue(mergedResult[i] == result[i]);
+        }
+    }
+
+    /**
+     * SetMerger test
+     *
+     * @throws Exception
+     */
     @Test
     public void testSetMerger() throws Exception {
         Set<Object> set1 = new HashSet<Object>();
@@ -73,30 +262,20 @@ public class ResultMergerTest {
         }, result);
     }
 
+    /**
+     * ShortArrayMerger test
+     *
+     * @throws Exception
+     */
     @Test
-    public void testArrayMerger() throws Exception {
-        String[] stringArray1 = {"1", "2", "3"};
-        String[] stringArray2 = {"4", "5", "6"};
-        String[] stringArray3 = {};
-
-        Object result = ArrayMerger.INSTANCE.merge(stringArray1, stringArray2, 
stringArray3);
-        Assert.assertTrue(result.getClass().isArray());
-        Assert.assertEquals(6, Array.getLength(result));
-        Assert.assertTrue(String.class.isInstance(Array.get(result, 0)));
-        for (int i = 0; i < 6; i++) {
-            Assert.assertEquals(String.valueOf(i + 1), Array.get(result, i));
-        }
-
-        int[] intArray1 = {1, 2, 3};
-        int[] intArray2 = {4, 5, 6};
-        int[] intArray3 = {7};
-        result = MergerFactory.getMerger(int[].class).merge(intArray1, 
intArray2, intArray3);
-        Assert.assertTrue(result.getClass().isArray());
-        Assert.assertEquals(7, Array.getLength(result));
-        Assert.assertTrue(int.class == result.getClass().getComponentType());
-        for (int i = 0; i < 7; i++) {
-            Assert.assertEquals(i + 1, Array.get(result, i));
+    public void testShortArrayMerger() throws Exception {
+        short[] arrayOne = {1, 2};
+        short[] arrayTwo = {2, 34};
+        short[] result = 
MergerFactory.getMerger(short[].class).merge(arrayOne, arrayTwo);
+        Assert.assertEquals(4, result.length);
+        double[] mergedResult = {1, 2, 2, 34};
+        for (int i = 0; i < mergedResult.length; i++) {
+            Assert.assertTrue(mergedResult[i] == result[i]);
         }
-
     }
 }
diff --git 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/router/condition/ConditionRouterTest.java
 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/router/condition/ConditionRouterTest.java
index 57d9de6..afbbc9b 100644
--- 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/router/condition/ConditionRouterTest.java
+++ 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/router/condition/ConditionRouterTest.java
@@ -26,7 +26,7 @@ import com.alibaba.dubbo.rpc.RpcInvocation;
 import com.alibaba.dubbo.rpc.cluster.Router;
 import com.alibaba.dubbo.rpc.cluster.router.MockInvoker;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -49,49 +49,37 @@ public class ConditionRouterTest {
     private URL getRouteUrl(String rule) {
         return SCRIPT_URL.addParameterAndEncoded(Constants.RULE_KEY, rule);
     }
+
     @Test
     public void testRoute_matchWhen() {
         Invocation invocation = new RpcInvocation();
 
         Router router = new ConditionRouterFactory().getRouter(getRouteUrl(" 
=> host = 1.2.3.4"));
-        boolean matchWhen = ((ConditionRouter) 
router).matchWhen(URL.valueOf("consumer://1.1.1.1/com.foo.BarService"),
-                invocation);
+        boolean matchWhen = ((ConditionRouter) 
router).matchWhen(URL.valueOf("consumer://1.1.1.1/com.foo.BarService"), 
invocation);
         Assert.assertEquals(true, matchWhen);
 
-        router = new ConditionRouterFactory()
-                .getRouter(getRouteUrl("host = 2.2.2.2,1.1.1.1,3.3.3.3 => host 
= 1.2.3.4"));
-        matchWhen = ((ConditionRouter) 
router).matchWhen(URL.valueOf("consumer://1.1.1.1/com.foo.BarService"),
-                invocation);
+        router = new ConditionRouterFactory().getRouter(getRouteUrl("host = 
2.2.2.2,1.1.1.1,3.3.3.3 => host = 1.2.3.4"));
+        matchWhen = ((ConditionRouter) 
router).matchWhen(URL.valueOf("consumer://1.1.1.1/com.foo.BarService"), 
invocation);
         Assert.assertEquals(true, matchWhen);
 
-        router = new ConditionRouterFactory()
-                .getRouter(getRouteUrl("host = 2.2.2.2,1.1.1.1,3.3.3.3 & host 
!=1.1.1.1 => host = 1.2.3.4"));
-        matchWhen = ((ConditionRouter) 
router).matchWhen(URL.valueOf("consumer://1.1.1.1/com.foo.BarService"),
-                invocation);
+        router = new ConditionRouterFactory().getRouter(getRouteUrl("host = 
2.2.2.2,1.1.1.1,3.3.3.3 & host !=1.1.1.1 => host = 1.2.3.4"));
+        matchWhen = ((ConditionRouter) 
router).matchWhen(URL.valueOf("consumer://1.1.1.1/com.foo.BarService"), 
invocation);
         Assert.assertEquals(false, matchWhen);
 
-        router = new ConditionRouterFactory()
-                .getRouter(getRouteUrl("host !=4.4.4.4 & host = 
2.2.2.2,1.1.1.1,3.3.3.3 => host = 1.2.3.4"));
-        matchWhen = ((ConditionRouter) 
router).matchWhen(URL.valueOf("consumer://1.1.1.1/com.foo.BarService"),
-                invocation);
+        router = new ConditionRouterFactory().getRouter(getRouteUrl("host 
!=4.4.4.4 & host = 2.2.2.2,1.1.1.1,3.3.3.3 => host = 1.2.3.4"));
+        matchWhen = ((ConditionRouter) 
router).matchWhen(URL.valueOf("consumer://1.1.1.1/com.foo.BarService"), 
invocation);
         Assert.assertEquals(true, matchWhen);
 
-        router = new ConditionRouterFactory()
-                .getRouter(getRouteUrl("host !=4.4.4.* & host = 
2.2.2.2,1.1.1.1,3.3.3.3 => host = 1.2.3.4"));
-        matchWhen = ((ConditionRouter) 
router).matchWhen(URL.valueOf("consumer://1.1.1.1/com.foo.BarService"),
-                invocation);
+        router = new ConditionRouterFactory().getRouter(getRouteUrl("host 
!=4.4.4.* & host = 2.2.2.2,1.1.1.1,3.3.3.3 => host = 1.2.3.4"));
+        matchWhen = ((ConditionRouter) 
router).matchWhen(URL.valueOf("consumer://1.1.1.1/com.foo.BarService"), 
invocation);
         Assert.assertEquals(true, matchWhen);
 
-        router = new ConditionRouterFactory()
-                .getRouter(getRouteUrl("host = 2.2.2.2,1.1.1.*,3.3.3.3 & host 
!= 1.1.1.1 => host = 1.2.3.4"));
-        matchWhen = ((ConditionRouter) 
router).matchWhen(URL.valueOf("consumer://1.1.1.1/com.foo.BarService"),
-                invocation);
+        router = new ConditionRouterFactory().getRouter(getRouteUrl("host = 
2.2.2.2,1.1.1.*,3.3.3.3 & host != 1.1.1.1 => host = 1.2.3.4"));
+        matchWhen = ((ConditionRouter) 
router).matchWhen(URL.valueOf("consumer://1.1.1.1/com.foo.BarService"), 
invocation);
         Assert.assertEquals(false, matchWhen);
 
-        router = new ConditionRouterFactory()
-                .getRouter(getRouteUrl("host = 2.2.2.2,1.1.1.*,3.3.3.3 & host 
!= 1.1.1.2 => host = 1.2.3.4"));
-        matchWhen = ((ConditionRouter) 
router).matchWhen(URL.valueOf("consumer://1.1.1.1/com.foo.BarService"),
-                invocation);
+        router = new ConditionRouterFactory().getRouter(getRouteUrl("host = 
2.2.2.2,1.1.1.*,3.3.3.3 & host != 1.1.1.2 => host = 1.2.3.4"));
+        matchWhen = ((ConditionRouter) 
router).matchWhen(URL.valueOf("consumer://1.1.1.1/com.foo.BarService"), 
invocation);
         Assert.assertEquals(true, matchWhen);
     }
 
@@ -127,24 +115,18 @@ public class ConditionRouterTest {
                 "host = " + NetUtils.getLocalHost() + " => " + " serialization 
= fastjson").addParameter(
                 Constants.FORCE_KEY, String.valueOf(true)));
 
-        List<Invoker<String>> fileredInvokers1 = router1.route(invokers,
-                URL.valueOf("consumer://" + NetUtils.getLocalHost() + 
"/com.foo.BarService"), new RpcInvocation());
-        List<Invoker<String>> fileredInvokers2 = router2.route(invokers,
-                URL.valueOf("consumer://" + NetUtils.getLocalHost() + 
"/com.foo.BarService"), new RpcInvocation());
-        List<Invoker<String>> fileredInvokers3 = router3.route(invokers,
-                URL.valueOf("consumer://" + NetUtils.getLocalHost() + 
"/com.foo.BarService"), new RpcInvocation());
-        List<Invoker<String>> fileredInvokers4 = router4.route(invokers,
-                URL.valueOf("consumer://" + NetUtils.getLocalHost() + 
"/com.foo.BarService"), new RpcInvocation());
-        List<Invoker<String>> fileredInvokers5 = router5.route(invokers,
-                URL.valueOf("consumer://" + NetUtils.getLocalHost() + 
"/com.foo.BarService"), new RpcInvocation());
-        List<Invoker<String>> fileredInvokers6 = router6.route(invokers,
-                URL.valueOf("consumer://" + NetUtils.getLocalHost() + 
"/com.foo.BarService"), new RpcInvocation());
-        Assert.assertEquals(1, fileredInvokers1.size());
-        Assert.assertEquals(0, fileredInvokers2.size());
-        Assert.assertEquals(0, fileredInvokers3.size());
-        Assert.assertEquals(1, fileredInvokers4.size());
-        Assert.assertEquals(2, fileredInvokers5.size());
-        Assert.assertEquals(1, fileredInvokers6.size());
+        List<Invoker<String>> filteredInvokers1 = router1.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
+        List<Invoker<String>> filteredInvokers2 = router2.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
+        List<Invoker<String>> filteredInvokers3 = router3.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
+        List<Invoker<String>> filteredInvokers4 = router4.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
+        List<Invoker<String>> filteredInvokers5 = router5.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
+        List<Invoker<String>> filteredInvokers6 = router6.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
+        Assert.assertEquals(1, filteredInvokers1.size());
+        Assert.assertEquals(0, filteredInvokers2.size());
+        Assert.assertEquals(0, filteredInvokers3.size());
+        Assert.assertEquals(1, filteredInvokers4.size());
+        Assert.assertEquals(2, filteredInvokers5.size());
+        Assert.assertEquals(1, filteredInvokers6.size());
     }
 
     @Test
@@ -185,16 +167,16 @@ public class ConditionRouterTest {
         Router router4 = new ConditionRouterFactory().getRouter(getRouteUrl(
                 "host = " + NetUtils.getLocalHost() + " & methods = getFoo => 
" + " host = 10.20.3.3").addParameter(
                 Constants.FORCE_KEY, String.valueOf(true)));
-        List<Invoker<String>> fileredInvokers1 = router4.route(invokers,
+        List<Invoker<String>> filteredInvokers1 = router4.route(invokers,
                 URL.valueOf("consumer://" + NetUtils.getLocalHost() + 
"/com.foo.BarService"), invocation);
-        Assert.assertEquals(1, fileredInvokers1.size());
+        Assert.assertEquals(1, filteredInvokers1.size());
 
         Router router5 = new ConditionRouterFactory().getRouter(getRouteUrl(
                 "host = " + NetUtils.getLocalHost() + " & methods = 
unvalidmethod => " + " host = 10.20.3.3")
                 .addParameter(Constants.FORCE_KEY, String.valueOf(true)));
-        List<Invoker<String>> fileredInvokers2 = router5.route(invokers,
+        List<Invoker<String>> filteredInvokers2 = router5.route(invokers,
                 URL.valueOf("consumer://" + NetUtils.getLocalHost() + 
"/com.foo.BarService"), invocation);
-        Assert.assertEquals(3, fileredInvokers2.size());
+        Assert.assertEquals(3, filteredInvokers2.size());
         // Request a non-exists method
     }
 
@@ -205,8 +187,8 @@ public class ConditionRouterTest {
         invokers.add(new MockInvoker<String>());
         invokers.add(new MockInvoker<String>());
         invokers.add(new MockInvoker<String>());
-        List<Invoker<String>> fileredInvokers = router.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
-        Assert.assertEquals(0, fileredInvokers.size());
+        List<Invoker<String>> filteredInvokers = router.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
+        Assert.assertEquals(0, filteredInvokers.size());
     }
 
     @Test
@@ -216,8 +198,8 @@ public class ConditionRouterTest {
         invokers.add(new MockInvoker<String>());
         invokers.add(new MockInvoker<String>());
         invokers.add(new MockInvoker<String>());
-        List<Invoker<String>> fileredInvokers = router.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
-        Assert.assertEquals(0, fileredInvokers.size());
+        List<Invoker<String>> filteredInvokers = router.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
+        Assert.assertEquals(0, filteredInvokers.size());
     }
 
     @Test
@@ -227,8 +209,8 @@ public class ConditionRouterTest {
         invokers.add(new MockInvoker<String>());
         invokers.add(new MockInvoker<String>());
         invokers.add(new MockInvoker<String>());
-        List<Invoker<String>> fileredInvokers = router.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
-        Assert.assertEquals(invokers, fileredInvokers);
+        List<Invoker<String>> filteredInvokers = router.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
+        Assert.assertEquals(invokers, filteredInvokers);
     }
 
     @Test
@@ -241,10 +223,10 @@ public class ConditionRouterTest {
         invokers.add(invoker1);
         invokers.add(invoker2);
         invokers.add(invoker3);
-        List<Invoker<String>> fileredInvokers = router.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
-        Assert.assertEquals(2, fileredInvokers.size());
-        Assert.assertEquals(invoker2, fileredInvokers.get(0));
-        Assert.assertEquals(invoker3, fileredInvokers.get(1));
+        List<Invoker<String>> filteredInvokers = router.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
+        Assert.assertEquals(2, filteredInvokers.size());
+        Assert.assertEquals(invoker2, filteredInvokers.get(0));
+        Assert.assertEquals(invoker3, filteredInvokers.get(1));
     }
 
     @Test
@@ -257,10 +239,10 @@ public class ConditionRouterTest {
         invokers.add(invoker1);
         invokers.add(invoker2);
         invokers.add(invoker3);
-        List<Invoker<String>> fileredInvokers = router.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
-        Assert.assertEquals(2, fileredInvokers.size());
-        Assert.assertEquals(invoker2, fileredInvokers.get(0));
-        Assert.assertEquals(invoker3, fileredInvokers.get(1));
+        List<Invoker<String>> filteredInvokers = router.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
+        Assert.assertEquals(2, filteredInvokers.size());
+        Assert.assertEquals(invoker2, filteredInvokers.get(0));
+        Assert.assertEquals(invoker3, filteredInvokers.get(1));
     }
 
     @Test
@@ -273,10 +255,10 @@ public class ConditionRouterTest {
         invokers.add(invoker1);
         invokers.add(invoker2);
         invokers.add(invoker3);
-        List<Invoker<String>> fileredInvokers = router.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
-        Assert.assertEquals(2, fileredInvokers.size());
-        Assert.assertEquals(invoker2, fileredInvokers.get(0));
-        Assert.assertEquals(invoker3, fileredInvokers.get(1));
+        List<Invoker<String>> filteredInvokers = router.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
+        Assert.assertEquals(2, filteredInvokers.size());
+        Assert.assertEquals(invoker2, filteredInvokers.get(0));
+        Assert.assertEquals(invoker3, filteredInvokers.get(1));
     }
 
     @Test
@@ -289,10 +271,10 @@ public class ConditionRouterTest {
         invokers.add(invoker1);
         invokers.add(invoker2);
         invokers.add(invoker3);
-        List<Invoker<String>> fileredInvokers = router.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
-        Assert.assertEquals(2, fileredInvokers.size());
-        Assert.assertEquals(invoker2, fileredInvokers.get(0));
-        Assert.assertEquals(invoker3, fileredInvokers.get(1));
+        List<Invoker<String>> filteredInvokers = router.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
+        Assert.assertEquals(2, filteredInvokers.size());
+        Assert.assertEquals(invoker2, filteredInvokers.get(0));
+        Assert.assertEquals(invoker3, filteredInvokers.get(1));
     }
 
     @Test
@@ -305,8 +287,8 @@ public class ConditionRouterTest {
         invokers.add(invoker1);
         invokers.add(invoker2);
         invokers.add(invoker3);
-        List<Invoker<String>> fileredInvokers = router.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
-        Assert.assertEquals(invokers, fileredInvokers);
+        List<Invoker<String>> filteredInvokers = router.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
+        Assert.assertEquals(invokers, filteredInvokers);
     }
 
     @Test
@@ -319,8 +301,8 @@ public class ConditionRouterTest {
         invokers.add(invoker1);
         invokers.add(invoker2);
         invokers.add(invoker3);
-        List<Invoker<String>> fileredInvokers = router.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
-        Assert.assertEquals(0, fileredInvokers.size());
+        List<Invoker<String>> filteredInvokers = router.route(invokers, 
URL.valueOf("consumer://" + NetUtils.getLocalHost() + "/com.foo.BarService"), 
new RpcInvocation());
+        Assert.assertEquals(0, filteredInvokers.size());
     }
 
 }
\ No newline at end of file
diff --git 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/router/file/FileRouterEngineTest.java
 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/router/file/FileRouterEngineTest.java
index 2056017..a95fc5c 100644
--- 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/router/file/FileRouterEngineTest.java
+++ 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/router/file/FileRouterEngineTest.java
@@ -31,7 +31,7 @@ import com.alibaba.dubbo.rpc.cluster.RouterFactory;
 import com.alibaba.dubbo.rpc.cluster.directory.StaticDirectory;
 import com.alibaba.dubbo.rpc.cluster.support.AbstractClusterInvoker;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
diff --git 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/router/script/ScriptRouterTest.java
 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/router/script/ScriptRouterTest.java
index 31a8679..a073ce2 100644
--- 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/router/script/ScriptRouterTest.java
+++ 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/router/script/ScriptRouterTest.java
@@ -24,11 +24,12 @@ import com.alibaba.dubbo.rpc.RpcInvocation;
 import com.alibaba.dubbo.rpc.cluster.Router;
 import com.alibaba.dubbo.rpc.cluster.router.MockInvoker;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
+import javax.script.ScriptException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -49,18 +50,18 @@ public class ScriptRouterTest {
     }
 
     @Test
-    public void testRoute_ReturnAll() {
+    public void testRouteReturnAll() {
         Router router = new 
ScriptRouterFactory().getRouter(getRouteUrl("function route(op1,op2){return 
op1} route(invokers)"));
         List<Invoker<String>> invokers = new ArrayList<Invoker<String>>();
         invokers.add(new MockInvoker<String>());
         invokers.add(new MockInvoker<String>());
         invokers.add(new MockInvoker<String>());
-        List<Invoker<String>> fileredInvokers = router.route(invokers, 
invokers.get(0).getUrl(), new RpcInvocation());
-        Assert.assertEquals(invokers, fileredInvokers);
+        List<Invoker<String>> filteredInvokers = router.route(invokers, 
invokers.get(0).getUrl(), new RpcInvocation());
+        Assert.assertEquals(invokers, filteredInvokers);
     }
 
     @Test
-    public void testRoute_PickInvokers() {
+    public void testRoutePickInvokers() {
         String rule = "var result = new java.util.ArrayList(invokers.size());" 
+
                 "for (i=0;i<invokers.size(); i++){ " +
                 "if (invokers.get(i).isAvailable()) {" +
@@ -78,10 +79,11 @@ public class ScriptRouterTest {
         invokers.add(invoker1);
         invokers.add(invoker2);
         invokers.add(invoker3);
-        List<Invoker<String>> fileredInvokers = router.route(invokers, 
invokers.get(0).getUrl(), new RpcInvocation());
-        Assert.assertEquals(2, fileredInvokers.size());
-        Assert.assertEquals(invoker2, fileredInvokers.get(0));
-        Assert.assertEquals(invoker3, fileredInvokers.get(1));
+        List<Invoker<String>> filteredInvokers = router.route(invokers, 
invokers.get(0).getUrl(), new RpcInvocation());
+        Assert.assertEquals(2, filteredInvokers.size());
+        Assert.assertEquals(invoker2, filteredInvokers.get(0));
+        Assert.assertEquals(invoker3, filteredInvokers.get(1));
     }
+
     //TODO Add tests for abnormal scene
 }
\ No newline at end of file
diff --git 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/AbstractClusterInvokerTest.java
 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/AbstractClusterInvokerTest.java
index 611683c..495d6fe 100644
--- 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/AbstractClusterInvokerTest.java
+++ 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/AbstractClusterInvokerTest.java
@@ -33,7 +33,7 @@ import 
com.alibaba.dubbo.rpc.cluster.loadbalance.LeastActiveLoadBalance;
 import com.alibaba.dubbo.rpc.cluster.loadbalance.RandomLoadBalance;
 import com.alibaba.dubbo.rpc.cluster.loadbalance.RoundRobinLoadBalance;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
diff --git 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/FailSafeClusterInvokerTest.java
 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/FailSafeClusterInvokerTest.java
index 714056b..883db13 100644
--- 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/FailSafeClusterInvokerTest.java
+++ 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/FailSafeClusterInvokerTest.java
@@ -26,7 +26,7 @@ import com.alibaba.dubbo.rpc.RpcResult;
 import com.alibaba.dubbo.rpc.cluster.Directory;
 import com.alibaba.dubbo.rpc.cluster.filter.DemoService;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
diff --git 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/FailbackClusterInvokerTest.java
 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/FailbackClusterInvokerTest.java
index d4a0d67..d70d1da 100644
--- 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/FailbackClusterInvokerTest.java
+++ 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/FailbackClusterInvokerTest.java
@@ -25,7 +25,7 @@ import com.alibaba.dubbo.rpc.RpcInvocation;
 import com.alibaba.dubbo.rpc.RpcResult;
 import com.alibaba.dubbo.rpc.cluster.Directory;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
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 511b15c..cbc495c 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
@@ -25,7 +25,7 @@ import com.alibaba.dubbo.rpc.RpcInvocation;
 import com.alibaba.dubbo.rpc.RpcResult;
 import com.alibaba.dubbo.rpc.cluster.Directory;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
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 5a6886c..d929183 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
@@ -24,7 +24,7 @@ import com.alibaba.dubbo.rpc.RpcInvocation;
 import com.alibaba.dubbo.rpc.RpcResult;
 import com.alibaba.dubbo.rpc.cluster.Directory;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
diff --git 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/wrapper/MockClusterInvokerTest.java
 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/wrapper/MockClusterInvokerTest.java
index a267b74..7ef2cfe 100644
--- 
a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/wrapper/MockClusterInvokerTest.java
+++ 
b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/wrapper/MockClusterInvokerTest.java
@@ -32,7 +32,7 @@ import 
com.alibaba.dubbo.rpc.cluster.directory.StaticDirectory;
 import com.alibaba.dubbo.rpc.cluster.support.AbstractClusterInvoker;
 import com.alibaba.dubbo.rpc.support.MockProtocol;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
diff --git 
a/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ExtensionLoaderTest.java
 
b/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ExtensionLoaderTest.java
index 3f7900c..a864907 100644
--- 
a/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ExtensionLoaderTest.java
+++ 
b/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ExtensionLoaderTest.java
@@ -47,7 +47,7 @@ import 
com.alibaba.dubbo.common.extensionloader.ext8_add.impl.AddExt4_ManualAdap
 import com.alibaba.dubbo.common.extensionloader.ext9_empty.Ext9Empty;
 import com.alibaba.dubbo.common.extensionloader.ext9_empty.impl.Ext9EmptyImpl;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Test;
 
 import java.util.HashSet;
diff --git 
a/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ExtensionLoader_Adaptive_Test.java
 
b/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ExtensionLoader_Adaptive_Test.java
index 486e976..b857566 100644
--- 
a/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ExtensionLoader_Adaptive_Test.java
+++ 
b/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ExtensionLoader_Adaptive_Test.java
@@ -30,7 +30,7 @@ import 
com.alibaba.dubbo.common.extensionloader.ext6_inject.Ext6;
 import com.alibaba.dubbo.common.extensionloader.ext6_inject.impl.Ext6Impl2;
 import com.alibaba.dubbo.common.utils.LogUtil;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Test;
 
 import java.util.HashMap;
diff --git 
a/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ext6_inject/impl/Ext6Impl1.java
 
b/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ext6_inject/impl/Ext6Impl1.java
index 2e7c525..886cc18 100644
--- 
a/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ext6_inject/impl/Ext6Impl1.java
+++ 
b/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ext6_inject/impl/Ext6Impl1.java
@@ -21,7 +21,7 @@ import 
com.alibaba.dubbo.common.extensionloader.ext1.SimpleExt;
 import com.alibaba.dubbo.common.extensionloader.ext6_inject.Dao;
 import com.alibaba.dubbo.common.extensionloader.ext6_inject.Ext6;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 
 public class Ext6Impl1 implements Ext6 {
     public Dao obj;
diff --git 
a/dubbo-common/src/test/java/com/alibaba/dubbo/common/json/JSONTest.java 
b/dubbo-common/src/test/java/com/alibaba/dubbo/common/json/JSONTest.java
index cf631ee..52aad49 100644
--- a/dubbo-common/src/test/java/com/alibaba/dubbo/common/json/JSONTest.java
+++ b/dubbo-common/src/test/java/com/alibaba/dubbo/common/json/JSONTest.java
@@ -16,7 +16,7 @@
  */
 package com.alibaba.dubbo.common.json;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Test;
 
 import java.io.StringReader;
diff --git 
a/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/ReferenceConfigTest.java
 
b/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/ReferenceConfigTest.java
index 888dc01..59c78e4 100644
--- 
a/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/ReferenceConfigTest.java
+++ 
b/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/ReferenceConfigTest.java
@@ -20,7 +20,7 @@ import com.alibaba.dubbo.common.Constants;
 import com.alibaba.dubbo.config.api.DemoService;
 import com.alibaba.dubbo.config.provider.impl.DemoServiceImpl;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Test;
 
 public class ReferenceConfigTest {
diff --git 
a/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/url/UrlTestBase.java
 
b/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/url/UrlTestBase.java
index d9bee91..8c65111 100644
--- 
a/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/url/UrlTestBase.java
+++ 
b/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/url/UrlTestBase.java
@@ -185,7 +185,7 @@ public class UrlTestBase {
      */
     protected void assertUrlStringWithLocalTable(String paramStringFromDb,
                                                  Object[][] dataTable, String 
configName, int column) {
-        final String FAILLOG_HEADER = "The following config items are not 
found in URL: ";
+        final String FAILLOG_HEADER = "The following config items are not 
found in URLONE: ";
 
         log.warn("Verifying service url for " + configName + "... ");
         log.warn("Consumer url string: " + paramStringFromDb);
diff --git 
a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/ConfigTest.java
 
b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/ConfigTest.java
index 86c37be..80643f3 100644
--- 
a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/ConfigTest.java
+++ 
b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/ConfigTest.java
@@ -381,7 +381,7 @@ public class ConfigTest {
         }
     }
 
-    // DUBBO-571 methods key in provider's URL doesn't contain the methods 
from inherited super interface
+    // DUBBO-571 methods key in provider's URLONE doesn't contain the methods 
from inherited super interface
     @Test
     public void test_noMethodInterface_methodsKeyHasValue() throws Exception {
         ClassPathXmlApplicationContext ctx = new 
ClassPathXmlApplicationContext(ConfigTest.class.getPackage().getName().replace('.',
 '/') + "/demo-provider-no-methods-interface.xml");
diff --git 
a/dubbo-registry/dubbo-registry-api/src/test/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactoryTest.java
 
b/dubbo-registry/dubbo-registry-api/src/test/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactoryTest.java
index cb2a454..327f9f5 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/test/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactoryTest.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/test/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactoryTest.java
@@ -22,7 +22,7 @@ import com.alibaba.dubbo.registry.NotifyListener;
 import com.alibaba.dubbo.registry.Registry;
 import com.alibaba.dubbo.registry.RegistryFactory;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Test;
 
 import java.util.List;
diff --git 
a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/buffer/DirectChannelBufferTest.java
 
b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/buffer/DirectChannelBufferTest.java
index ff623ef..83b87b3 100644
--- 
a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/buffer/DirectChannelBufferTest.java
+++ 
b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/buffer/DirectChannelBufferTest.java
@@ -16,7 +16,7 @@
  */
 package com.alibaba.dubbo.remoting.buffer;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 
 public class DirectChannelBufferTest extends AbstractChannelBufferTest {
 
diff --git 
a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/buffer/HeapChannelBufferTest.java
 
b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/buffer/HeapChannelBufferTest.java
index 7ad39da..03be4c4 100644
--- 
a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/buffer/HeapChannelBufferTest.java
+++ 
b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/buffer/HeapChannelBufferTest.java
@@ -16,7 +16,7 @@
  */
 package com.alibaba.dubbo.remoting.buffer;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 
 public class HeapChannelBufferTest extends AbstractChannelBufferTest {
 
diff --git 
a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/codec/ExchangeCodecTest.java
 
b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/codec/ExchangeCodecTest.java
index e372e14..23cbcd8 100644
--- 
a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/codec/ExchangeCodecTest.java
+++ 
b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/codec/ExchangeCodecTest.java
@@ -32,7 +32,7 @@ import com.alibaba.dubbo.remoting.exchange.Response;
 import com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec;
 import com.alibaba.dubbo.remoting.telnet.codec.TelnetCodec;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
diff --git 
a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/codec/TelnetCodecTest.java
 
b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/codec/TelnetCodecTest.java
index fdc8274..2e8a41a 100644
--- 
a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/codec/TelnetCodecTest.java
+++ 
b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/codec/TelnetCodecTest.java
@@ -24,7 +24,7 @@ import com.alibaba.dubbo.remoting.buffer.ChannelBuffer;
 import com.alibaba.dubbo.remoting.buffer.ChannelBuffers;
 import com.alibaba.dubbo.remoting.telnet.codec.TelnetCodec;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
diff --git 
a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/ConnectChannelHandlerTest.java
 
b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/ConnectChannelHandlerTest.java
index 4799ff6..74b8896 100644
--- 
a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/ConnectChannelHandlerTest.java
+++ 
b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/ConnectChannelHandlerTest.java
@@ -22,7 +22,7 @@ import com.alibaba.dubbo.remoting.exchange.Request;
 import com.alibaba.dubbo.remoting.exchange.Response;
 import 
com.alibaba.dubbo.remoting.transport.dispatcher.connection.ConnectionOrderedChannelHandler;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
diff --git 
a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/WrappedChannelHandlerTest.java
 
b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/WrappedChannelHandlerTest.java
index 96e147c..7ff84a0 100644
--- 
a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/WrappedChannelHandlerTest.java
+++ 
b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/WrappedChannelHandlerTest.java
@@ -22,7 +22,7 @@ import com.alibaba.dubbo.remoting.Channel;
 import com.alibaba.dubbo.remoting.RemotingException;
 import com.alibaba.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
diff --git 
a/dubbo-remoting/dubbo-remoting-mina/src/test/java/com/alibaba/remoting/transport/mina/ClientToServerTest.java
 
b/dubbo-remoting/dubbo-remoting-mina/src/test/java/com/alibaba/remoting/transport/mina/ClientToServerTest.java
index 48bc7b7..9ec37c4 100644
--- 
a/dubbo-remoting/dubbo-remoting-mina/src/test/java/com/alibaba/remoting/transport/mina/ClientToServerTest.java
+++ 
b/dubbo-remoting/dubbo-remoting-mina/src/test/java/com/alibaba/remoting/transport/mina/ClientToServerTest.java
@@ -22,7 +22,7 @@ import com.alibaba.dubbo.remoting.exchange.ExchangeServer;
 import com.alibaba.dubbo.remoting.exchange.ResponseFuture;
 import com.alibaba.dubbo.remoting.exchange.support.Replier;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import junit.framework.TestCase;
 import org.junit.Test;
 
diff --git 
a/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/exchange/support/header/HeartbeatHandlerTest.java
 
b/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/exchange/support/header/HeartbeatHandlerTest.java
index 89fc6f4..fba07b8 100644
--- 
a/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/exchange/support/header/HeartbeatHandlerTest.java
+++ 
b/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/exchange/support/header/HeartbeatHandlerTest.java
@@ -30,7 +30,7 @@ import com.alibaba.dubbo.remoting.exchange.ExchangeServer;
 import com.alibaba.dubbo.remoting.exchange.Exchangers;
 import com.alibaba.dubbo.remoting.transport.dispatcher.FakeChannelHandlers;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.After;
 import org.junit.Test;
 
diff --git 
a/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/transport/netty/ClientToServerTest.java
 
b/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/transport/netty/ClientToServerTest.java
index 0046d4e..91eebdd 100644
--- 
a/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/transport/netty/ClientToServerTest.java
+++ 
b/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/transport/netty/ClientToServerTest.java
@@ -22,7 +22,7 @@ import com.alibaba.dubbo.remoting.exchange.ExchangeServer;
 import com.alibaba.dubbo.remoting.exchange.ResponseFuture;
 import com.alibaba.dubbo.remoting.exchange.support.Replier;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import junit.framework.TestCase;
 import org.junit.Test;
 
diff --git 
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/DubboInvokerAvilableTest.java
 
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/DubboInvokerAvilableTest.java
index dcedfcf..6629aa1 100644
--- 
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/DubboInvokerAvilableTest.java
+++ 
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/DubboInvokerAvilableTest.java
@@ -27,7 +27,7 @@ import com.alibaba.dubbo.rpc.Exporter;
 import com.alibaba.dubbo.rpc.ProxyFactory;
 import com.alibaba.dubbo.rpc.protocol.dubbo.support.ProtocolUtils;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
diff --git 
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/DubboProtocolTest.java
 
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/DubboProtocolTest.java
index 5e8a709..4ef0c4d 100644
--- 
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/DubboProtocolTest.java
+++ 
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/DubboProtocolTest.java
@@ -31,14 +31,14 @@ import 
com.alibaba.dubbo.rpc.protocol.dubbo.support.RemoteServiceImpl;
 import com.alibaba.dubbo.rpc.protocol.dubbo.support.Type;
 import com.alibaba.dubbo.rpc.service.EchoService;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Test;
 
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
-import static junit.framework.Assert.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 /**
  * <code>ProxiesTest</code>
diff --git 
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/ImplicitCallBackTest.java
 
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/ImplicitCallBackTest.java
index 6006be8..728a424 100644
--- 
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/ImplicitCallBackTest.java
+++ 
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/ImplicitCallBackTest.java
@@ -26,7 +26,7 @@ import com.alibaba.dubbo.rpc.RpcContext;
 import com.alibaba.dubbo.rpc.StaticContext;
 import com.alibaba.dubbo.rpc.protocol.dubbo.support.ProtocolUtils;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
diff --git 
a/dubbo-rpc/dubbo-rpc-injvm/src/test/java/com/alibaba/dubbo/rpc/protocol/injvm/InjvmProtocolTest.java
 
b/dubbo-rpc/dubbo-rpc-injvm/src/test/java/com/alibaba/dubbo/rpc/protocol/injvm/InjvmProtocolTest.java
index 0af3f46..a390b73 100644
--- 
a/dubbo-rpc/dubbo-rpc-injvm/src/test/java/com/alibaba/dubbo/rpc/protocol/injvm/InjvmProtocolTest.java
+++ 
b/dubbo-rpc/dubbo-rpc-injvm/src/test/java/com/alibaba/dubbo/rpc/protocol/injvm/InjvmProtocolTest.java
@@ -30,8 +30,8 @@ import org.junit.Test;
 import java.util.ArrayList;
 import java.util.List;
 
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 /**
  * <code>ProxiesTest</code>
diff --git 
a/dubbo-rpc/dubbo-rpc-rmi/src/test/java/com/alibaba/dubbo/rpc/protocol/rmi/RmiProtocolTest.java
 
b/dubbo-rpc/dubbo-rpc-rmi/src/test/java/com/alibaba/dubbo/rpc/protocol/rmi/RmiProtocolTest.java
index 83f6a19..d7c5910 100644
--- 
a/dubbo-rpc/dubbo-rpc-rmi/src/test/java/com/alibaba/dubbo/rpc/protocol/rmi/RmiProtocolTest.java
+++ 
b/dubbo-rpc/dubbo-rpc-rmi/src/test/java/com/alibaba/dubbo/rpc/protocol/rmi/RmiProtocolTest.java
@@ -28,7 +28,7 @@ import com.alibaba.dubbo.rpc.service.EchoService;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import static junit.framework.Assert.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class RmiProtocolTest {
     private Protocol protocol = 
ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
diff --git 
a/dubbo-test/dubbo-test-examples/src/test/java/com/alibaba/dubbo/examples/validation/ValidationTest.java
 
b/dubbo-test/dubbo-test-examples/src/test/java/com/alibaba/dubbo/examples/validation/ValidationTest.java
index 2438c21..b33110d 100644
--- 
a/dubbo-test/dubbo-test-examples/src/test/java/com/alibaba/dubbo/examples/validation/ValidationTest.java
+++ 
b/dubbo-test/dubbo-test-examples/src/test/java/com/alibaba/dubbo/examples/validation/ValidationTest.java
@@ -19,7 +19,7 @@ package com.alibaba.dubbo.examples.validation;
 import com.alibaba.dubbo.examples.validation.api.ValidationParameter;
 import com.alibaba.dubbo.examples.validation.api.ValidationService;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import org.junit.Test;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 

-- 
To stop receiving notification emails like this one, please contact
wang...@apache.org.

Reply via email to