/* * 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.registry.dubbo; import java.net.InetSocketAddress; import java.util.Map; import com.alibaba.dubbo.common.URL; import com.alibaba.dubbo.remoting.Channel; import com.alibaba.dubbo.remoting.ChannelHandler; import com.alibaba.dubbo.remoting.Codec; import com.alibaba.dubbo.remoting.RemotingException; import com.alibaba.dubbo.remoting.exchange.ExchangeClient; import com.alibaba.dubbo.remoting.exchange.ExchangeHandler; import com.alibaba.dubbo.remoting.exchange.ResponseCallback; import com.alibaba.dubbo.remoting.exchange.ResponseFuture; import com.alibaba.dubbo.remoting.exchange.support.Replier; /** * MockedClient * * @author william.liangf */ public class MockedClient implements ExchangeClient { //private String host; //private int port; private boolean connected; private Object received; private Object sent; private Object invoked; private Replier<?> handler; private InetSocketAddress address; private boolean closed = false; //private ChannelListener listener; public MockedClient(String host, int port, boolean connected) { this(host, port, connected, null); } public MockedClient(String host, int port, boolean connected, Object received) { this.address = new InetSocketAddress(host, port); this.connected = connected; this.received = received; } public void open() { } public void close() { this.closed = true; } public void send(Object msg) throws RemotingException { this.sent = msg; } public ResponseFuture request(Object msg) throws RemotingException { return request(msg, 0); } public ResponseFuture request(Object msg, int timeout) throws RemotingException { this.invoked = msg; return new ResponseFuture() { public Object get() throws RemotingException { return received; } public Object get(int timeoutInMillis) throws RemotingException { return received; } public boolean isDone() { return true; } public void setCallback(ResponseCallback callback) { } }; } public void registerHandler(Replier<?> handler) { this.handler = handler; } public void unregisterHandler(Replier<?> handler) { //this.handler = null; } public void addChannelListener(ChannelHandler listener) { //this.listener = listener; } public void removeChannelListener(ChannelHandler listener) { //this.listener = null; } public boolean isConnected() { return connected; } public Object getSent() { return sent; } public Replier<?> getHandler() { return handler; } public Object getInvoked() { return invoked; } public InetSocketAddress getRemoteAddress() { return address; } public String getName() { return "mocked"; } public InetSocketAddress getLocalAddress() { return null; } public void setTimeout(int timeout) { } public int getTimeout() { return 0; } public void close(int timeout) { close(); } public boolean isOpen() { return closed; } public Codec getCodec() { return null; } public void setCodec(Codec codec) { } public void setHost(String host) { } public String getHost() { return null; } public void setPort(int port) { } public int getPort() { return 0; } public void setThreadCount(int threadCount) { } public int getThreadCount() { return 0; } public URL getUrl() { return null; } public Replier<?> getReceiver() { return null; } public ChannelHandler getChannelHandler() { return null; } public void reset(Map<String, String> parameters) { } public Channel getChannel() { return this; } public ExchangeHandler getExchangeHandler() { return null; } public void reconnect() throws RemotingException { } public Object getAttribute(String key) { return null; } public void setAttribute(String key, Object value) { } public boolean hasAttribute(String key) { return false; } public boolean isClosed() { return closed; } public void removeAttribute(String key) { } /** * @return the received */ public Object getReceived() { return received; } /** * @param received the received to set */ public void setReceived(Object received) { this.received = received; } /** * @param connected the connected to set */ public void setConnected(boolean connected) { this.connected = connected; } public void send(Object message, boolean sent) throws RemotingException { } public void reset(URL url) { } @Deprecated public void reset(com.alibaba.dubbo.common.Parameters parameters) { } }