internal FakeAdvancedApi(FakeBusEventRecorder recorder, FakeBusEventFactory factory, IRebusTime rebusTime)
    {
        _dataBus = new FakeDataBus(rebusTime);

        Workers = new FakeWorkersApi(recorder, rebusTime);
        Topics = new FakeTopicsApi(recorder, factory, rebusTime);
        SyncBus = new FakeSyncBus(recorder, factory, rebusTime);
        Routing = new FakeRoutingApi(recorder, factory, rebusTime);
        TransportMessage = new FakeTransportMessageApi(recorder, rebusTime);
    }
        public void CanInvokeCallback()
        {
            var fakeBus   = new FakeSyncBus();
            var callbacks = new List <string>();

            fakeBus.On <MessageSent>(e => callbacks.Add($"message sent: {e.CommandMessage}"));

            fakeBus.Send("whatever");

            Assert.That(callbacks, Is.EqualTo(new[] { "message sent: whatever" }));
        }
        public void CanDoItAll()
        {
            var fakeBus = new FakeSyncBus();

            fakeBus.Send(new MyMessage("send"));
            fakeBus.SendLocal(new MyMessage("send"));
            fakeBus.Publish(new MyMessage("send"));
            fakeBus.Defer(TimeSpan.FromSeconds(10), new MyMessage("send"));
            fakeBus.Subscribe <MyMessage>();
            fakeBus.Unsubscribe <MyMessage>();
        }
        public void CanClearEventsFromFakeBus()
        {
            var bus            = new FakeSyncBus();
            var commandMessage = new { Text = "hej med dig min ven!!!!" };

            bus.Send(commandMessage);

            bus.Clear();

            Assert.That(bus.Events.Count(), Is.EqualTo(0));
        }
        public void CodeSampleForComment()
        {
            var fakeBus = new FakeSyncBus();

            fakeBus.Send(new MyMessage("woohoo!"));

            var sentMessagesWithMyGreeting = fakeBus.Events
                                             .OfType <MessageSent <MyMessage> >()
                                             .Count(m => m.CommandMessage.Text == "woohoo!");

            Assert.That(sentMessagesWithMyGreeting, Is.EqualTo(1));
        }
        public async Task CheckThatEventsAreProperlyRecorded()
        {
            var bus = new FakeSyncBus();

            var commandMessage = new { Text = "hej med dig min ven!!!!" };

            bus.Send(commandMessage);

            var messageSentEvents = bus.Events.OfType <MessageSent>().ToList();

            Assert.That(messageSentEvents.Count, Is.EqualTo(1));
            Assert.That(messageSentEvents[0].CommandMessage, Is.EqualTo(commandMessage));
        }