From c41b330f0fdfe5204839199246eb2c708932da69 Mon Sep 17 00:00:00 2001 From: JKorf Date: Mon, 2 Jul 2018 09:22:17 +0200 Subject: [PATCH] Added test websocket for unit testing --- .../TestImplementation.cs | 1 - .../Implementation/TestWebsocket.cs | 68 +++++++++++++++++++ .../Implementation/TestWebsocketFactory.cs | 13 ++++ 3 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 CryptoExchange.Net/Implementation/TestWebsocket.cs create mode 100644 CryptoExchange.Net/Implementation/TestWebsocketFactory.cs diff --git a/CryptoExchange.Net.UnitTests/TestImplementation.cs b/CryptoExchange.Net.UnitTests/TestImplementation.cs index b4f75eb..83da800 100644 --- a/CryptoExchange.Net.UnitTests/TestImplementation.cs +++ b/CryptoExchange.Net.UnitTests/TestImplementation.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Text; using CryptoExchange.Net.Authentication; using CryptoExchange.Net.Interfaces; diff --git a/CryptoExchange.Net/Implementation/TestWebsocket.cs b/CryptoExchange.Net/Implementation/TestWebsocket.cs new file mode 100644 index 0000000..debdde2 --- /dev/null +++ b/CryptoExchange.Net/Implementation/TestWebsocket.cs @@ -0,0 +1,68 @@ +using System; +using System.Security.Authentication; +using System.Threading; +using System.Threading.Tasks; +using CryptoExchange.Net.Interfaces; + +namespace CryptoExchange.Net.Implementation +{ + public class TestWebsocket: IWebsocket + { + public void Dispose() + { + } + + public void SetEnabledSslProtocols(SslProtocols protocols) + { + } + + public void SetProxy(string host, int port) + { + } + + public event Action OnClose; + public event Action OnMessage; + public event Action OnError; + public event Action OnOpen; + + public bool IsClosed { get; private set; } + public bool IsOpen { get; private set; } + public bool PingConnection { get; set; } + public TimeSpan PingInterval { get; set; } + + public Task Connect() + { + IsClosed = false; + IsOpen = true; + OnOpen?.Invoke(); + + return Task.FromResult(true); + } + + public void Send(string data) + { + } + + public void EnqueueMessage(string data) + { + Thread.Sleep(10); + OnMessage?.Invoke(data); + } + + public void InvokeError(Exception ex, bool closeConnection) + { + Thread.Sleep(10); + OnError?.Invoke(ex); + if (closeConnection) + Close(); + } + + public Task Close() + { + IsClosed = true; + IsOpen = false; + OnClose?.Invoke(); + return Task.FromResult(0); + } + } +} diff --git a/CryptoExchange.Net/Implementation/TestWebsocketFactory.cs b/CryptoExchange.Net/Implementation/TestWebsocketFactory.cs new file mode 100644 index 0000000..d630e84 --- /dev/null +++ b/CryptoExchange.Net/Implementation/TestWebsocketFactory.cs @@ -0,0 +1,13 @@ +using CryptoExchange.Net.Interfaces; +using CryptoExchange.Net.Logging; + +namespace CryptoExchange.Net.Implementation +{ + public class TestWebsocketFactory : IWebsocketFactory + { + public IWebsocket CreateWebsocket(Log log, string url) + { + return new TestWebsocket(); + } + } +}