/* Copyright (c) Microsoft Open Technologies, Inc. All Rights Reserved See License.txt in the project root for license information. */ package microsoft.aspnet.signalr.client.tests.util; import microsoft.aspnet.signalr.client.ConnectionBase; import microsoft.aspnet.signalr.client.SignalRFuture; import microsoft.aspnet.signalr.client.transport.ClientTransport; import microsoft.aspnet.signalr.client.transport.ConnectionType; import microsoft.aspnet.signalr.client.transport.DataResultCallback; import microsoft.aspnet.signalr.client.transport.NegotiationResponse; public class MockClientTransport implements ClientTransport { private boolean mSupportKeepAlive = false; private int mAbortInvocations = 0; public SignalRFuture<NegotiationResponse> negotiationFuture; public TransportOperation startOperation; public TransportOperation sendOperation; public SignalRFuture<Void> abortFuture; public void setSupportKeepAlive(boolean support) { mSupportKeepAlive = support; } @Override public String getName() { return "mock"; } @Override public boolean supportKeepAlive() { return mSupportKeepAlive; } @Override public SignalRFuture<NegotiationResponse> negotiate(ConnectionBase connection) { negotiationFuture = new SignalRFuture<NegotiationResponse>(); return negotiationFuture; } @Override public SignalRFuture<Void> start(ConnectionBase connection, ConnectionType connectionType, DataResultCallback callback) { startOperation = new TransportOperation(); startOperation.future = new SignalRFuture<Void>(); startOperation.callback = callback; return startOperation.future; } @Override public SignalRFuture<Void> send(ConnectionBase connection, String data, DataResultCallback callback) { sendOperation = new TransportOperation(); sendOperation.future = new SignalRFuture<Void>(); sendOperation.callback = callback; sendOperation.data = data; return sendOperation.future; } @Override public SignalRFuture<Void> abort(ConnectionBase connection) { mAbortInvocations++; abortFuture = new SignalRFuture<Void>(); return abortFuture; } public int getAbortInvocations() { return mAbortInvocations; } public class TransportOperation { public SignalRFuture<Void> future; public DataResultCallback callback; public Object data; } }