using CryptoExchange.Net.Objects; using CryptoExchange.Net.Objects.Errors; using CryptoExchange.Net.Objects.Sockets; using CryptoExchange.Net.Sockets; using CryptoExchange.Net.Sockets.Default; using System; using System.Text.Json.Serialization; namespace CryptoExchange.Net.UnitTests.TestImplementations.Sockets { internal class SubResponse { [JsonPropertyName("action")] public string Action { get; set; } = null!; [JsonPropertyName("channel")] public string Channel { get; set; } = null!; [JsonPropertyName("status")] public string Status { get; set; } = null!; } internal class UnsubResponse { [JsonPropertyName("action")] public string Action { get; set; } = null!; [JsonPropertyName("status")] public string Status { get; set; } = null!; } internal class TestChannelQuery : Query { public TestChannelQuery(string channel, string request, bool authenticated, int weight = 1) : base(request, authenticated, weight) { MessageMatcher = MessageMatcher.Create(request + "-" + channel, HandleMessage); } public CallResult HandleMessage(SocketConnection connection, DateTime time, string? originalData, SubResponse message) { if (!message.Status.Equals("confirmed", StringComparison.OrdinalIgnoreCase)) { return new CallResult(new ServerError(ErrorInfo.Unknown with { Message = message.Status })); } return new CallResult(message, originalData, null); } } }