1
0
mirror of https://github.com/JKorf/CryptoExchange.Net.git synced 2026-08-15 10:22:57 +00:00

Add tests for subscription confirmation (#191)

* Add tests for subscription confirmation
This commit is contained in:
Jonnern
2024-03-08 08:34:14 +01:00
committed by GitHub
parent 61aa589cda
commit 462c857bba
4 changed files with 159 additions and 6 deletions
@@ -0,0 +1,45 @@
using CryptoExchange.Net.Objects;
using CryptoExchange.Net.Objects.Sockets;
using CryptoExchange.Net.Sockets;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace CryptoExchange.Net.UnitTests.TestImplementations.Sockets
{
internal class SubResponse
{
[JsonProperty("channel")]
public string Channel { get; set; } = null!;
[JsonProperty("status")]
public string Status { get; set; } = null!;
}
internal class UnsubResponse
{
[JsonProperty("status")]
public string Status { get; set; } = null!;
}
internal class TestChannelQuery : Query<SubResponse>
{
public override HashSet<string> ListenerIdentifiers { get; set; }
public TestChannelQuery(string channel, string request, bool authenticated, int weight = 1) : base(request, authenticated, weight)
{
ListenerIdentifiers = new HashSet<string> { channel };
}
public override Task<CallResult<SubResponse>> HandleMessageAsync(SocketConnection connection, DataEvent<SubResponse> message)
{
if (!message.Data.Status.Equals("confirmed", StringComparison.OrdinalIgnoreCase))
{
return Task.FromResult(new CallResult<SubResponse>(new ServerError(message.Data.Status)));
}
return base.HandleMessageAsync(connection, message);
}
}
}