Beispiel #1
0
        private void ResendUnacknowledgedMessageToRemoteClient(
            InsertDocumentIntoRemoteBackOfficeCommand insertDocumentIntoRemoteBackOfficeCommand)
        {
            var brokerId = GetBrokerId().ToString();

            Clients.User(brokerId).InsertDocument(insertDocumentIntoRemoteBackOfficeCommand);
        }
        public void Handle_WhenBackOfficeInsertFails_ShouldSendFailureAcknowledgement()
        {
            // Arrange
            var command = new InsertDocumentIntoRemoteBackOfficeCommand
            {
                CorrelationId = Guid.NewGuid(),
                Id            = Guid.NewGuid()
            };

            messageStore.Setup(s => s.MessageExists(command.Id))
            .Returns(false);
            backOfficeService.Setup(s => s.InsertDocument())
            .Returns(false);

            // Act
            sut.Handle(command);

            // Assert
            bus.Verify(
                b =>
                b.Send(
                    It.Is <SendAcknowledgementCommand>(
                        s =>
                        s.CorrelationId == command.CorrelationId && !s.Success &&
                        s.ErrorMessage == "Failed to write to back office with error code xyz")),
                Times.Once());
        }
        public void Handle_WhenMessageHasPreviouslyBeenProcessed_ShouldSendAcknowledgement_AndReturn()
        {
            // Arrange
            var command = new InsertDocumentIntoRemoteBackOfficeCommand { CorrelationId = Guid.NewGuid(), Id = Guid.NewGuid() };
            messageStore.Setup(s => s.MessageExists(command.Id))
                .Returns(true);

            // Act
            sut.Handle(command);

            // Assert
            bus.Verify(
                b => b.Send(It.Is<SendAcknowledgementCommand>(s => s.CorrelationId == command.CorrelationId && s.Success)),
                Times.Once());

            messageStore.Verify(m => m.AddMessageId(It.IsAny<Guid>()), Times.Never);
        }
        public void Handle_WhenMessageHasPreviouslyBeenProcessed_ShouldSendAcknowledgement_AndReturn()
        {
            // Arrange
            var command = new InsertDocumentIntoRemoteBackOfficeCommand {
                CorrelationId = Guid.NewGuid(), Id = Guid.NewGuid()
            };

            messageStore.Setup(s => s.MessageExists(command.Id))
            .Returns(true);

            // Act
            sut.Handle(command);

            // Assert
            bus.Verify(
                b => b.Send(It.Is <SendAcknowledgementCommand>(s => s.CorrelationId == command.CorrelationId && s.Success)),
                Times.Once());

            messageStore.Verify(m => m.AddMessageId(It.IsAny <Guid>()), Times.Never);
        }
 private void SendInsertDocumentCommand(InsertDocumentIntoRemoteBackOfficeCommand command)
 {
     //take message out of buffer immediately and persist to msmq
     bus.Send(command);
 }
 private void SendInsertDocumentCommand(InsertDocumentIntoRemoteBackOfficeCommand command)
 {
     //take message out of buffer immediately and persist to msmq
     bus.Send(command);
 }
        public void Handle_WhenBackOfficeInsertFails_ShouldSendFailureAcknowledgement()
        {
            // Arrange
            var command = new InsertDocumentIntoRemoteBackOfficeCommand
                              {
                                  CorrelationId = Guid.NewGuid(),
                                  Id = Guid.NewGuid()
                              };
            messageStore.Setup(s => s.MessageExists(command.Id))
                .Returns(false);
            backOfficeService.Setup(s => s.InsertDocument())
                .Returns(false);
            
            // Act
            sut.Handle(command);

            // Assert
            bus.Verify(
                b =>
                b.Send(
                    It.Is<SendAcknowledgementCommand>(
                        s =>
                        s.CorrelationId == command.CorrelationId && !s.Success
                        && s.ErrorMessage == "Failed to write to back office with error code xyz")),
                Times.Once());
        }