public void should_handle_execution_completion_received() { var messageExecutionCompletedTransportMessage = new MessageExecutionCompleted(MessageId.NextId(), 0, null).ToTransportMessage(); InnerTransport.RaiseMessageReceived(messageExecutionCompletedTransportMessage); var forwardedMessage = MessagesForwardedToBus.Single(x => x.MessageTypeId == MessageExecutionCompleted.TypeId); forwardedMessage.ShouldEqualDeeply(messageExecutionCompletedTransportMessage); }
public void should_only_forward_replayed_messages_during_replay_phase() { Transport.Start(); var transportMessageToForward = new FakeCommand(123).ToTransportMessage(); var normalTransportMessage = new FakeEvent(123).ToTransportMessage(); var replayedTransportMessage = transportMessageToForward.ToReplayedTransportMessage(ReplayId); InnerTransport.RaiseMessageReceived(replayedTransportMessage); InnerTransport.RaiseMessageReceived(normalTransportMessage); MessagesForwardedToBus.Count.ShouldEqual(1); MessagesForwardedToBus.Single().Id.ShouldEqual(transportMessageToForward.Id); }
public void should_forward_normal_message_after_replay_phase() { Transport.Start(); var message = new FakeCommand(123).ToTransportMessage(); InnerTransport.RaiseMessageReceived(new ReplayPhaseEnded(StartMessageReplayCommand.ReplayId).ToTransportMessage()); Thread.Sleep(10); InnerTransport.RaiseMessageReceived(message); Thread.Sleep(10); MessagesForwardedToBus.Count.ShouldEqual(1); MessagesForwardedToBus.Single().Id.ShouldEqual(message.Id); }
public void should_not_handle_twice_duplicate_messages() { Transport.Start(); var duplicatedMessage = new FakeCommand(123).ToTransportMessage(); InnerTransport.RaiseMessageReceived(new ReplayPhaseEnded(StartMessageReplayCommand.ReplayId).ToTransportMessage()); InnerTransport.RaiseMessageReceived(duplicatedMessage); InnerTransport.RaiseMessageReceived(duplicatedMessage.ToReplayedTransportMessage(StartMessageReplayCommand.ReplayId)); Wait.Until(() => MessagesForwardedToBus.Count == 1, 150.Milliseconds()); MessagesForwardedToBus.Single().Id.ShouldEqual(duplicatedMessage.Id); }
public void should_forward_a_normal_message_after_a_back_to_live_event() { Transport.Start(); var transportMessageToForward = new FakeCommand(123).ToTransportMessage(); InnerTransport.RaiseMessageReceived(transportMessageToForward); MessagesForwardedToBus.ShouldBeEmpty(); InnerTransport.RaiseMessageReceived(new ReplayPhaseEnded(StartMessageReplayCommand.ReplayId).ToTransportMessage()); Thread.Sleep(50); MessagesForwardedToBus.Count.ShouldEqual(1); MessagesForwardedToBus.Single().ShouldEqualDeeply(transportMessageToForward); }
public void should_forward_a_normal_message_after_a_back_to_live_event() { Transport.Start(); var transportMessageToForward = new FakeCommand(123).ToTransportMessage(); InnerTransport.RaiseMessageReceived(transportMessageToForward); MessagesForwardedToBus.ShouldBeEmpty(); InnerTransport.RaiseMessageReceived(new ReplayPhaseEnded(StartMessageReplayCommand.ReplayId).ToTransportMessage()); Wait.Until(() => MessagesForwardedToBus.Count == 1, 150.Milliseconds()); var transportMessage = MessagesForwardedToBus.Single(); transportMessage.ShouldEqualDeeply(transportMessageToForward); }