public async Task GetNext_GetsGoodMessage() { var messageClass = typeof(TestSagaMessage1).FullName + ", " + typeof(TestSagaMessage1).Assembly.GetName().Name; var expectedQueueMessage = new QueueMessage { Headers = "{ \"MessageClass\":\"" + messageClass + "\"}" }; var expectedHeaders = new Headers { MessageClass = messageClass, ExceptionDetails = null }; var expectedUserMessage = new TestSagaMessage1(); dataAccess.Setup(d => d.GetPendingQueued("SourceQueue")) .Returns(Task.FromResult(expectedQueueMessage)); serializer.Setup(s => s.DeserializeHeaders(It.IsAny <string>())) .Returns(expectedHeaders); serializer.Setup(s => s.DeserializeMessage(It.IsAny <string>(), typeof(TestSagaMessage1))) .Returns(expectedUserMessage); var message = await reader.GetNext("SourceQueue"); Assert.IsTrue(ReferenceEquals(expectedQueueMessage, message.MessageData)); Assert.IsTrue(ReferenceEquals(expectedHeaders, message.Headers)); Assert.IsTrue(ReferenceEquals(expectedUserMessage, message.Message)); Assert.AreEqual("SourceQueue", message.SourceQueue); }