public void should_send_message_to_replayer()
        {
            var targetPeer   = new PeerId("Abc.Testing.Target");
            var replayerMock = new Mock <IMessageReplayer>();

            MockContainer.GetMock <IMessageReplayerRepository>().Setup(x => x.GetActiveMessageReplayer(targetPeer)).Returns(replayerMock.Object);
            var transportMessage = new FakeCommand(1).ToTransportMessage();
            var command          = new PersistMessageCommand(transportMessage, new[] { targetPeer });

            Handler.Handle(command);

            replayerMock.Verify(x => x.AddLiveMessage(transportMessage));
        }
        public void should_persist_message()
        {
            using (SystemDateTime.PauseTime())
            {
                var transportMessage = new FakeCommand(42).ToTransportMessage();

                var peerId  = new PeerId("Abc.Testing.Target");
                var command = new PersistMessageCommand(transportMessage, new[] { peerId });
                Handler.Handle(command);

                Wait.Until(() => _inMemoryMessageMatcher.CassandraInsertCount == 1, 2.Seconds());
                _storageMock.Verify(x => x.Write(It.IsAny <IList <MatcherEntry> >()), Times.Once);
            }
        }
Esempio n. 3
0
        public void persistent_messages_sent_to_multiple_peers_should_only_be_persisted_for_persistent_ones()
        {
            using (MessageId.PauseIdGeneration())
            {
                var message        = new FakeEvent(123).ToTransportMessage(Self);
                var persistCommand = new PersistMessageCommand(message, new[] { AnotherPersistentPeer.Id }).ToTransportMessage(Self);

                Transport.Send(message, new[] { AnotherPersistentPeer, AnotherNonPersistentPeer });

                InnerTransport.ExpectExactly(
                    new TransportMessageSent(message, new[] { AnotherPersistentPeer, AnotherNonPersistentPeer }),
                    new TransportMessageSent(persistCommand, new[] { PersistencePeer })
                    );
            }
        }
            public void should_not_send_completion_when_message_is_PersistMessageCommand()
            {
                using (MessageId.PauseIdGeneration())
                {
                    var cmd = new PersistMessageCommand(new FakeCommand(123).ToTransportMessage(), new List <PeerId> {
                        new PeerId("Peer.Id")
                    });
                    SetupDispatch(cmd);

                    var transportMessageReceived = cmd.ToTransportMessage(_peerUp);
                    _transport.RaiseMessageReceived(transportMessageReceived);

                    _transport.Messages.ShouldNotContain(x => x.TransportMessage.MessageTypeId == MessageExecutionCompleted.TypeId);
                }
            }
Esempio n. 5
0
        public void should_serialize_persist_message_command()
        {
            var transportMessage      = new FakeEvent(42).ToTransportMessage(_self);
            var persistMessageCommand = new PersistMessageCommand(transportMessage, new PeerId("Abc.Testing.A"), new PeerId("Abc.Testing.B"));

            var serializedTransportMessage = _messageSerializer.ToTransportMessage(persistMessageCommand, _self.Id, _self.EndPoint);

            serializedTransportMessage.Id.ShouldEqual(transportMessage.Id);
            serializedTransportMessage.MessageTypeId.ShouldEqual(transportMessage.MessageTypeId);
            serializedTransportMessage.Content.ShouldEqual(transportMessage.Content);
            serializedTransportMessage.Originator.ShouldEqual(transportMessage.Originator);
            serializedTransportMessage.Environment.ShouldEqual(transportMessage.Environment);
            serializedTransportMessage.WasPersisted.ShouldEqual(transportMessage.WasPersisted);
            serializedTransportMessage.PersistentPeerIds.ShouldBeEquivalentTo(persistMessageCommand.Targets);
        }
Esempio n. 6
0
        public void should_send_persistent_message_to_the_persistence_and_to_the_peer()
        {
            using (MessageId.PauseIdGeneration())
            {
                var message = new FakeCommand(123).ToTransportMessage();

                Transport.Send(message, new[] { AnotherPersistentPeer });

                var expectedPersistenceMessage = new PersistMessageCommand(message, new[] { AnotherPersistentPeer.Id }).ToTransportMessage(Self);
                InnerTransport.ExpectExactly(new[]
                {
                    new TransportMessageSent(message, AnotherPersistentPeer, true),
                    new TransportMessageSent(expectedPersistenceMessage, PersistencePeer),
                });
            }
        }
 private static TransportMessage ToTransportMessage(PersistMessageCommand persistMessageCommand)
 => persistMessageCommand.TransportMessage.ToPersistTransportMessage(persistMessageCommand.Targets);