| /*
|
| * Copyright 1999-2011 Alibaba Group.
|
| *
|
| * Licensed 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.protocol.dubbo; |
| |
| |
| import org.junit.Assert; |
| import org.junit.Before; |
| import org.junit.BeforeClass; |
| import org.junit.Test; |
| |
| import com.alibaba.dubbo.common.Constants;
|
| import com.alibaba.dubbo.common.URL; |
| import com.alibaba.dubbo.common.utils.NetUtils; |
| import com.alibaba.dubbo.rpc.RpcException; |
| import com.alibaba.dubbo.rpc.protocol.dubbo.support.ProtocolUtils;
|
| |
| /** |
| * dubbo protocol lazy connect test |
| * @author chao.liuc |
| * |
| */ |
| public class DubboLazyConnectTest { |
| |
| @BeforeClass |
| public static void setUpBeforeClass() throws Exception { |
| } |
| |
| @Before |
| public void setUp() throws Exception { |
| } |
| |
| @Test(expected = RpcException.class) |
| public void testSticky1(){ |
| URL url = URL.valueOf("dubbo://127.0.0.1:9090/hi"); |
| ProtocolUtils.refer(IDemoService.class, url); |
| } |
| |
| @Test |
| public void testSticky2(){ |
| URL url = URL.valueOf("dubbo://127.0.0.1:9090/hi?"+Constants.LAZY_CONNECT_KEY+"=true"); |
| ProtocolUtils.refer(IDemoService.class, url); |
| } |
| |
| @Test(expected = RpcException.class) |
| public void testSticky3() { |
| URL url = URL.valueOf("dubbo://127.0.0.1:9090/hi?"+Constants.LAZY_CONNECT_KEY+"=true"); |
| IDemoService service = (IDemoService)ProtocolUtils.refer(IDemoService.class, url); |
| service.get(); |
| } |
| |
| @Test |
| public void testSticky4() { |
| int port = NetUtils.getAvailablePort(); |
| URL url = URL.valueOf("dubbo://127.0.0.1:"+port+"/hi?"+Constants.LAZY_CONNECT_KEY+"=true"); |
| |
| ProtocolUtils.export(new DemoServiceImpl(), IDemoService.class, url); |
| |
| IDemoService service = (IDemoService)ProtocolUtils.refer(IDemoService.class, url); |
| Assert.assertEquals("ok", service.get()); |
| } |
| |
| public interface IDemoService{ |
| public String get(); |
| } |
| public class DemoServiceImpl implements IDemoService{ |
| public String get(){ |
| return "ok"; |
| } |
| } |
| } |