mirror of
				https://github.com/JKorf/CryptoExchange.Net
				synced 2025-10-31 10:27:48 +00:00 
			
		
		
		
	commit 90f285d7f6bcd926ce9ca3d5832b1d70a5eae6ab
Author: JKorf <jankorf91@gmail.com>
Date:   Sun Jun 25 19:51:12 2023 +0200
    Docs
commit 72187035c703d1402b37bd2f4c3e066706f28d67
Author: JKorf <jankorf91@gmail.com>
Date:   Sat Jun 24 16:02:53 2023 +0200
    docs
commit 8411977292f1fb0b6e0705b1ad675b79a5311d90
Author: JKorf <jankorf91@gmail.com>
Date:   Fri Jun 23 18:25:15 2023 +0200
    wip
commit cb7d33aad5d2751104c8b8a6c6eadbf0d36b672c
Author: JKorf <jankorf91@gmail.com>
Date:   Fri Jun 2 19:26:26 2023 +0200
    wip
commit 4359a2d05ea1141cff516dab18f364a6ca854e18
Author: JKorf <jankorf91@gmail.com>
Date:   Wed May 31 20:51:36 2023 +0200
    wip
commit c6adb1b2f728d143f6bd667139c619581122a3c9
Author: JKorf <jankorf91@gmail.com>
Date:   Mon May 1 21:13:47 2023 +0200
    wip
commit 7fee733f82fa6ff574030452f0955c9e817647dd
Author: JKorf <jankorf91@gmail.com>
Date:   Thu Apr 27 13:02:56 2023 +0200
    wip
commit f8057313ffc9b0c31effcda71d35d105ea390971
Author: JKorf <jankorf91@gmail.com>
Date:   Mon Apr 17 21:37:51 2023 +0200
    wip
		
	
			
		
			
				
	
	
		
			123 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Threading.Tasks;
 | |
| using CryptoExchange.Net.Authentication;
 | |
| using CryptoExchange.Net.Interfaces;
 | |
| using CryptoExchange.Net.Objects;
 | |
| using CryptoExchange.Net.Objects.Options;
 | |
| using CryptoExchange.Net.Sockets;
 | |
| using Microsoft.Extensions.Logging;
 | |
| using Moq;
 | |
| using Newtonsoft.Json.Linq;
 | |
| 
 | |
| namespace CryptoExchange.Net.UnitTests.TestImplementations
 | |
| {
 | |
|     public class TestSocketClient: BaseSocketClient
 | |
|     {
 | |
|         public TestSubSocketClient SubClient { get; }
 | |
| 
 | |
|         public TestSocketClient(ILoggerFactory loggerFactory = null) : this((x) => { }, loggerFactory)
 | |
|         {
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Create a new instance of KucoinSocketClient
 | |
|         /// </summary>
 | |
|         /// <param name="optionsFunc">Configure the options to use for this client</param>
 | |
|         public TestSocketClient(Action<TestSocketOptions> optionsFunc) : this(optionsFunc, null)
 | |
|         {
 | |
|         }
 | |
| 
 | |
|         public TestSocketClient(Action<TestSocketOptions> optionsFunc, ILoggerFactory loggerFactory = null) : base(loggerFactory, "Test")
 | |
|         {
 | |
|             var options = TestSocketOptions.Default.Copy<TestSocketOptions>();
 | |
|             optionsFunc(options);
 | |
|             Initialize(options);
 | |
| 
 | |
|             SubClient = AddApiClient(new TestSubSocketClient(options, options.SubOptions));
 | |
|             SubClient.SocketFactory = new Mock<IWebsocketFactory>().Object;
 | |
|             Mock.Get(SubClient.SocketFactory).Setup(f => f.CreateWebsocket(It.IsAny<ILogger>(), It.IsAny<WebSocketParameters>())).Returns(new TestSocket());
 | |
|         }
 | |
| 
 | |
|         public TestSocket CreateSocket()
 | |
|         {
 | |
|             Mock.Get(SubClient.SocketFactory).Setup(f => f.CreateWebsocket(It.IsAny<ILogger>(), It.IsAny<WebSocketParameters>())).Returns(new TestSocket());
 | |
|             return (TestSocket)SubClient.CreateSocketInternal("https://localhost:123/");
 | |
|         }
 | |
|                 
 | |
|     }
 | |
| 
 | |
|     public class TestEnvironment : TradeEnvironment
 | |
|     {
 | |
|         public string TestAddress { get; }
 | |
| 
 | |
|         public TestEnvironment(string name, string url) : base(name)
 | |
|         {
 | |
|             TestAddress = url;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public class TestSocketOptions: SocketExchangeOptions<TestEnvironment>
 | |
|     {
 | |
|         public static TestSocketOptions Default = new TestSocketOptions
 | |
|         {
 | |
|             Environment = new TestEnvironment("Live", "https://test.test")
 | |
|         };
 | |
| 
 | |
|         public SocketApiOptions SubOptions { get; set; } = new SocketApiOptions();
 | |
|     }
 | |
| 
 | |
|     public class TestSubSocketClient : SocketApiClient
 | |
|     {
 | |
| 
 | |
|         public TestSubSocketClient(TestSocketOptions options, SocketApiOptions apiOptions): base(new TraceLogger(), options.Environment.TestAddress, options, apiOptions)
 | |
|         {
 | |
| 
 | |
|         }
 | |
| 
 | |
|         internal IWebsocket CreateSocketInternal(string address)
 | |
|         {
 | |
|             return CreateSocket(address);
 | |
|         }
 | |
| 
 | |
|         protected override AuthenticationProvider CreateAuthenticationProvider(ApiCredentials credentials)
 | |
|             => new TestAuthProvider(credentials);
 | |
| 
 | |
|         public CallResult<bool> ConnectSocketSub(SocketConnection sub)
 | |
|         {
 | |
|             return ConnectSocketAsync(sub).Result;
 | |
|         }
 | |
| 
 | |
|         protected internal override bool HandleQueryResponse<T>(SocketConnection s, object request, JToken data, out CallResult<T> callResult)
 | |
|         {
 | |
|             throw new NotImplementedException();
 | |
|         }
 | |
| 
 | |
|         protected internal override bool HandleSubscriptionResponse(SocketConnection s, SocketSubscription subscription, object request, JToken message,
 | |
|             out CallResult<object> callResult)
 | |
|         {
 | |
|             throw new NotImplementedException();
 | |
|         }
 | |
| 
 | |
|         protected internal override bool MessageMatchesHandler(SocketConnection s, JToken message, object request)
 | |
|         {
 | |
|             throw new NotImplementedException();
 | |
|         }
 | |
| 
 | |
|         protected internal override bool MessageMatchesHandler(SocketConnection s, JToken message, string identifier)
 | |
|         {
 | |
|             return true;
 | |
|         }
 | |
| 
 | |
|         protected internal override Task<CallResult<bool>> AuthenticateSocketAsync(SocketConnection s)
 | |
|         {
 | |
|             throw new NotImplementedException();
 | |
|         }
 | |
| 
 | |
|         protected internal override Task<bool> UnsubscribeAsync(SocketConnection connection, SocketSubscription s)
 | |
|         {
 | |
|             throw new NotImplementedException();
 | |
|         }
 | |
|     }
 | |
| }
 |