using Luna.Channels.Abstractions; using Luna.Shared; namespace Luna.Channels.Tests.Stubs; public class TelegramChannelStub : IChannel { public string ChannelId => throw new NotImplementedException(); public string ChannelType => throw new NotImplementedException(); public string DisplayName => throw new NotImplementedException(); public bool IsConnected => throw new NotImplementedException(); public event ChannelMessageReceivedEventHandler? MessageReceived; public event ChannelConnectionChangedEventHandler? ConnectionStateChanged; public Task VerifyChannelLinkAsync() { throw new NotImplementedException(); } public Task SendMessageAsync(ChannelMessage message, CancellationToken cancellationToken = default) => throw new NotImplementedException(); public Task SendStreamingMessageAsync( IAsyncEnumerable messageStream, CancellationToken cancellationToken = default) => throw new NotImplementedException(); public void RaiseMessageReceived(object? sender, ChannelMessage message) { RaiseMessageReceived(new ChannelMessageReceivedEventArgs { Channel = this, Message = message }); } public void Dispose() => throw new NotImplementedException(); internal void RaiseMessageReceived(ChannelMessageReceivedEventArgs args) => MessageReceived?.Invoke(this, args); internal void RaiseConnectionStateChanged(ChannelConnectionEventArgs args) => ConnectionStateChanged?.Invoke(this, args); }