public void MapToCompletionMessage_WhenMessageTypeIsNotFinishOrException_ShouldReturnNull()
        {
            // Arrange
            var messageType             = "SomeUnsupportedType";
            var expectedMessageId       = Guid.NewGuid().ToString("N");
            var expectedApplicationName = "MyApplicationName";

            var processMessageStartFinish = new ProcessStartFinishMessage(messageType, expectedMessageId, expectedApplicationName, "Proc name", "Step 1", DateTime.UtcNow);
            var messageBody = GetJsonByteArray(processMessageStartFinish);

            // Act
            var actualProcessCompleteMessage = ProcessMessageMapper.MapToProcessCompletionMessage(messageType, messageBody);

            // Assert
            Assert.Null(actualProcessCompleteMessage);
        }
        public void MapToCompletionMessage_WhenMessageTypeIsProcessFinish_ShouldReturnProcessCompletionMessage()
        {
            // Arrange
            var messageType             = "ProcessFinish";
            var expectedMessageId       = Guid.NewGuid().ToString("N");
            var expectedApplicationName = "MyApplicationName";

            var processMessageStartFinish = new ProcessStartFinishMessage(messageType, expectedMessageId, expectedApplicationName, "Proc name", "Step 1", DateTime.UtcNow);
            var messageBody = GetJsonByteArray(processMessageStartFinish);

            // Act
            var actualProcessCompleteMessage = ProcessMessageMapper.MapToProcessCompletionMessage(messageType, messageBody);

            // Assert
            Assert.Equal("CompletionMessage", actualProcessCompleteMessage.MessageType);
            Assert.Equal(expectedMessageId, actualProcessCompleteMessage.MessageId);
            Assert.Equal(expectedApplicationName, actualProcessCompleteMessage.ApplicationName);
            Assert.False(actualProcessCompleteMessage.CancellationToken.IsCancellationRequested);
        }