/* * 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.remoting.transport.mina; import junit.framework.Assert; import junit.framework.TestCase; import org.junit.Test; import com.alibaba.dubbo.remoting.RemotingException; import com.alibaba.dubbo.remoting.exchange.ExchangeChannel; import com.alibaba.dubbo.remoting.exchange.ExchangeServer; import com.alibaba.dubbo.remoting.exchange.ResponseFuture; import com.alibaba.dubbo.remoting.exchange.support.Replier; /** * ClientToServer * * @author william.liangf */ public abstract class ClientToServerTest extends TestCase { protected static final String LOCALHOST = "127.0.0.1"; protected ExchangeServer server; protected ExchangeChannel client; protected WorldHandler handler = new WorldHandler(); protected abstract ExchangeServer newServer(int port, Replier<?> receiver) throws RemotingException; protected abstract ExchangeChannel newClient(int port) throws RemotingException; @Override protected void setUp() throws Exception { super.setUp(); int port = (int) (1000 * Math.random() + 10000); server = newServer(port, handler); client = newClient(port); } @Override protected void tearDown() throws Exception { super.tearDown(); try { if (server != null) server.close(); } finally { if (client != null) client.close(); } } @Test public void testFuture() throws Exception { ResponseFuture future = client.request(new World("world")); Hello result = (Hello)future.get(); Assert.assertEquals("hello,world", result.getName()); } // @Test // public void testCallback() throws Exception { // final Object waitter = new Object(); // client.invoke(new World("world"), new InvokeCallback<Hello>() { // public void callback(Hello result) { // Assert.assertEquals("hello,world", result.getName()); // synchronized (waitter) { // waitter.notifyAll(); // } // } // public void onException(Throwable exception) { // } // }); // synchronized (waitter) { // waitter.wait(); // } // } }