public async Task Pipeline_Execute_ShouldAddToPemStorageOnSuccess()
        {
            var pem = GetMessage();

            await ProcessMessageAsync(pem);

            PemStorageMock.Verify(pms => pms.AddMessageAsync(pem), Times.Once);
        }
        public async Task Pipeline_Execute_ShouldNotAddToPEMStorageIfAdditionalSteps()
        {
            var pem = GetMessage();

            pem.Instructions.Add(new PipelineExecutionInstruction()
            {
                Name    = "Second Step",
                QueueId = "MODULE2",
                Type    = "ANOTHEREQUEUE"
            });

            await ProcessMessageAsync(pem);

            PemStorageMock.Verify(pms => pms.AddMessageAsync(pem), Times.Never);
        }
        public async Task Pipeline_Execute_ShouldAddToDeadLeaderIfFailed()
        {
            var pem = GetMessage();

            PipelineModule.ResultToReturn = new IoT.Runtime.Core.Processor.ProcessResult();
            var failedError = new Logging.Error()
            {
                Message = "IT FAILED!", ErrorCode = "ERR001"
            };

            PipelineModule.ResultToReturn.ErrorMessages.Add(failedError);

            await ProcessMessageAsync(pem);

            PemStorageMock.Verify(pms => pms.AddMessageAsync(pem), Times.Once);
        }