using CryptoExchange.Net.Objects; using CryptoExchange.Net.Objects.Sockets; using CryptoExchange.Net.Sockets; using System; using System.Collections.Generic; 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 override HashSet ListenerIdentifiers { get; set; } public TestChannelQuery(string channel, string request, bool authenticated, int weight = 1) : base(request, authenticated, weight) { ListenerIdentifiers = new HashSet { request + "-" + channel }; } public override CallResult HandleMessage(SocketConnection connection, DataEvent message) { if (!message.Data.Status.Equals("confirmed", StringComparison.OrdinalIgnoreCase)) { return new CallResult(new ServerError(message.Data.Status)); } return base.HandleMessage(connection, message); } } }