From 0571ed17a0e502f689af6e8a5dbd0f05fd229496 Mon Sep 17 00:00:00 2001 From: JKorf Date: Sun, 10 Jul 2022 19:56:27 +0200 Subject: [PATCH] Fixed tests --- .../SocketClientTests.cs | 50 +++++-------------- .../TestImplementations/TestSocket.cs | 10 ++-- .../TestImplementations/TestSocketClient.cs | 6 +-- 3 files changed, 19 insertions(+), 47 deletions(-) diff --git a/CryptoExchange.Net.UnitTests/SocketClientTests.cs b/CryptoExchange.Net.UnitTests/SocketClientTests.cs index 374a9439..44b9a5d0 100644 --- a/CryptoExchange.Net.UnitTests/SocketClientTests.cs +++ b/CryptoExchange.Net.UnitTests/SocketClientTests.cs @@ -42,7 +42,7 @@ namespace CryptoExchange.Net.UnitTests socket.CanConnect = canConnect; //act - var connectResult = client.ConnectSocketSub(new SocketConnection(client, null, socket)); + var connectResult = client.ConnectSocketSub(new SocketConnection(client, null, socket, null)); //assert Assert.IsTrue(connectResult.Success == canConnect); @@ -57,10 +57,10 @@ namespace CryptoExchange.Net.UnitTests socket.ShouldReconnect = true; socket.CanConnect = true; socket.DisconnectTime = DateTime.UtcNow; - var sub = new SocketConnection(client, null, socket); + var sub = new SocketConnection(client, null, socket, null); var rstEvent = new ManualResetEvent(false); JToken result = null; - sub.AddSubscription(SocketSubscription.CreateForIdentifier(10, "TestHandler", true, (messageEvent) => + sub.AddSubscription(SocketSubscription.CreateForIdentifier(10, "TestHandler", true, false, (messageEvent) => { result = messageEvent.JsonData; rstEvent.Set(); @@ -85,10 +85,10 @@ namespace CryptoExchange.Net.UnitTests socket.ShouldReconnect = true; socket.CanConnect = true; socket.DisconnectTime = DateTime.UtcNow; - var sub = new SocketConnection(client, null, socket); + var sub = new SocketConnection(client, null, socket, null); var rstEvent = new ManualResetEvent(false); string original = null; - sub.AddSubscription(SocketSubscription.CreateForIdentifier(10, "TestHandler", true, (messageEvent) => + sub.AddSubscription(SocketSubscription.CreateForIdentifier(10, "TestHandler", true, false, (messageEvent) => { original = messageEvent.OriginalData; rstEvent.Set(); @@ -103,34 +103,6 @@ namespace CryptoExchange.Net.UnitTests Assert.IsTrue(original == (enabled ? "{\"property\": 123}" : null)); } - [TestCase] - public void DisconnectedSocket_Should_Reconnect() - { - // arrange - bool reconnected = false; - var client = new TestSocketClient(new TestOptions() { ReconnectInterval = TimeSpan.Zero, LogLevel = LogLevel.Debug }); - var socket = client.CreateSocket(); - socket.ShouldReconnect = true; - socket.CanConnect = true; - socket.DisconnectTime = DateTime.UtcNow; - var sub = new SocketConnection(client, null, socket); - sub.ShouldReconnect = true; - client.ConnectSocketSub(sub); - var rstEvent = new ManualResetEvent(false); - sub.ConnectionRestored += (a) => - { - reconnected = true; - rstEvent.Set(); - }; - - // act - socket.InvokeClose(); - rstEvent.WaitOne(1000); - - // assert - Assert.IsTrue(reconnected); - } - [TestCase()] public void UnsubscribingStream_Should_CloseTheSocket() { @@ -138,9 +110,11 @@ namespace CryptoExchange.Net.UnitTests var client = new TestSocketClient(new TestOptions() { ReconnectInterval = TimeSpan.Zero, LogLevel = LogLevel.Debug }); var socket = client.CreateSocket(); socket.CanConnect = true; - var sub = new SocketConnection(client, null, socket); + var sub = new SocketConnection(client, null, socket, null); client.ConnectSocketSub(sub); - var ups = new UpdateSubscription(sub, SocketSubscription.CreateForIdentifier(10, "Test", true, (e) => {})); + var us = SocketSubscription.CreateForIdentifier(10, "Test", true, false, (e) => { }); + var ups = new UpdateSubscription(sub, us); + sub.AddSubscription(us); // act client.UnsubscribeAsync(ups).Wait(); @@ -158,8 +132,8 @@ namespace CryptoExchange.Net.UnitTests var socket2 = client.CreateSocket(); socket1.CanConnect = true; socket2.CanConnect = true; - var sub1 = new SocketConnection(client, null, socket1); - var sub2 = new SocketConnection(client, null, socket2); + var sub1 = new SocketConnection(client, null, socket1, null); + var sub2 = new SocketConnection(client, null, socket2, null); client.ConnectSocketSub(sub1); client.ConnectSocketSub(sub2); @@ -178,7 +152,7 @@ namespace CryptoExchange.Net.UnitTests var client = new TestSocketClient(new TestOptions() { ReconnectInterval = TimeSpan.Zero, LogLevel = LogLevel.Debug }); var socket = client.CreateSocket(); socket.CanConnect = false; - var sub = new SocketConnection(client, null, socket); + var sub = new SocketConnection(client, null, socket, null); // act var connectResult = client.ConnectSocketSub(sub); diff --git a/CryptoExchange.Net.UnitTests/TestImplementations/TestSocket.cs b/CryptoExchange.Net.UnitTests/TestImplementations/TestSocket.cs index 6eabc9a7..a59b88a1 100644 --- a/CryptoExchange.Net.UnitTests/TestImplementations/TestSocket.cs +++ b/CryptoExchange.Net.UnitTests/TestImplementations/TestSocket.cs @@ -13,6 +13,8 @@ namespace CryptoExchange.Net.UnitTests.TestImplementations public bool Connected { get; set; } public event Action OnClose; + public event Action OnReconnected; + public event Action OnReconnecting; public event Action OnMessage; public event Action OnError; public event Action OnOpen; @@ -93,6 +95,7 @@ namespace CryptoExchange.Net.UnitTests.TestImplementations { Connected = false; DisconnectTime = DateTime.UtcNow; + Reconnecting = true; OnClose?.Invoke(); } @@ -115,11 +118,6 @@ namespace CryptoExchange.Net.UnitTests.TestImplementations { OnError?.Invoke(error); } - - public async Task ProcessAsync() - { - while (Connected) - await Task.Delay(50); - } + public Task ReconnectAsync() => Task.CompletedTask; } } diff --git a/CryptoExchange.Net.UnitTests/TestImplementations/TestSocketClient.cs b/CryptoExchange.Net.UnitTests/TestImplementations/TestSocketClient.cs index 218264d6..eb992746 100644 --- a/CryptoExchange.Net.UnitTests/TestImplementations/TestSocketClient.cs +++ b/CryptoExchange.Net.UnitTests/TestImplementations/TestSocketClient.cs @@ -22,13 +22,13 @@ namespace CryptoExchange.Net.UnitTests.TestImplementations { SubClient = new TestSubSocketClient(exchangeOptions, exchangeOptions.SubOptions); SocketFactory = new Mock().Object; - Mock.Get(SocketFactory).Setup(f => f.CreateWebsocket(It.IsAny(), It.IsAny())).Returns(new TestSocket()); + Mock.Get(SocketFactory).Setup(f => f.CreateWebsocket(It.IsAny(), It.IsAny())).Returns(new TestSocket()); } public TestSocket CreateSocket() { - Mock.Get(SocketFactory).Setup(f => f.CreateWebsocket(It.IsAny(), It.IsAny())).Returns(new TestSocket()); - return (TestSocket)CreateSocket("123"); + Mock.Get(SocketFactory).Setup(f => f.CreateWebsocket(It.IsAny(), It.IsAny())).Returns(new TestSocket()); + return (TestSocket)CreateSocket("https://localhost:123/"); } public CallResult ConnectSocketSub(SocketConnection sub)