using CryptoExchange.Net.Objects; using CryptoExchange.Net.Objects.Sockets; using CryptoExchange.Net.Sockets; using CryptoExchange.Net.Sockets.MessageParsing.Interfaces; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CryptoExchange.Net.UnitTests.TestImplementations.Sockets { internal class TestSubscription : Subscription { private readonly Action> _handler; public override HashSet ListenerIdentifiers { get; set; } = new HashSet { "topic" }; public TestSubscription(ILogger logger, Action> handler) : base(logger, false) { _handler = handler; } public override Task DoHandleMessageAsync(SocketConnection connection, DataEvent message) { var data = (T)message.Data; _handler.Invoke(message.As(data)); return Task.FromResult(new CallResult(null)); } public override Type GetMessageType(IMessageAccessor message) => typeof(T); public override Query GetSubQuery(SocketConnection connection) => new TestQuery("sub", new object(), false, 1); public override Query GetUnsubQuery() => new TestQuery("unsub", new object(), false, 1); } }