public SsePublisherActor(string streamName, Type feedClass, int feedPayload, int feedInterval, string feedDefaultId)
            {
                _feed        = Stage.ActorFor <ISseFeed>(Definition.Has(feedClass, Definition.Parameters(streamName, feedPayload, feedDefaultId)));
                _subscribers = new Dictionary <string, SseSubscriber>();
                _cancellable = Stage.Scheduler.Schedule(
                    SelfAs <IScheduled <object?> >(),
                    null,
                    TimeSpan.FromMilliseconds(10),
                    TimeSpan.FromMilliseconds(feedInterval));

                Logger.Info($"SsePublisher started for: {streamName}");
            }
    public void TestThatFeedFeedsMultipleSubscribers()
    {
        _feed = _world.ActorFor <ISseFeed>(() => new AllSseFeedActor("all", 10, "1"));

        var subscriber1 = new SseSubscriber("all", _client, "ABC123", "41");
        var subscriber2 = new SseSubscriber("all", _client, "ABC456", "42");
        var subscriber3 = new SseSubscriber("all", _client, "ABC789", "43");

        var respondWithSafely = _context.Channel.ExpectRespondWith(3);

        _feed.To(new List <SseSubscriber> {
            subscriber1, subscriber2, subscriber3
        });

        Assert.Equal(3, respondWithSafely.ReadFrom <int>("count"));

        Assert.Equal(3, _context.Channel.RespondWithCount.Get());
    }
    public void TestThatFeedFeedsOneSubscriber()
    {
        var respondWithSafely = _context.Channel.ExpectRespondWith(1);

        _feed = _world.ActorFor <ISseFeed>(() => new AllSseFeedActor("all", 10, "1"));

        var subscriber = new SseSubscriber("all", _client, "ABC123", "42");

        _feed.To(new List <SseSubscriber> {
            subscriber
        });

        Assert.Equal(1, respondWithSafely.ReadFrom <int>("count"));

        Assert.Equal(1, _context.Channel.RespondWithCount.Get());

        var eventsResponse = respondWithSafely.ReadFrom <Response>("eventsResponse");

        var events = MessageEvent.From(eventsResponse);

        Assert.Equal(10, events.Count);
    }