using ZB.MOM.WW.MxGateway.Contracts.Proto;
using ZB.MOM.WW.MxGateway.Server.Dashboard.Hubs;

namespace ZB.MOM.WW.MxGateway.Tests.TestSupport;

/// <summary>
/// <see cref="IDashboardEventBroadcaster"/> that drops every event on the floor.
/// Used by tests that need to wire up <c>EventStreamService</c> but do not care
/// about the dashboard fan-out side-channel. The singleton <see cref="Instance"/>
/// mirrors the shared-fake pattern under
/// <c>src/ZB.MOM.WW.MxGateway.Tests/TestSupport/</c>.
/// </summary>
public sealed class NullDashboardEventBroadcaster : IDashboardEventBroadcaster
{
    /// <summary>Shared instance for tests that do not need to inspect broadcaster state.</summary>
    public static readonly NullDashboardEventBroadcaster Instance = new();

    private NullDashboardEventBroadcaster()
    {
    }

    /// <inheritdoc />
    public void Publish(string sessionId, MxEvent mxEvent)
    {
    }
}
