public void cant_get_a_message_twice_even_if_its_not_finished() { Assert.That(subject.Get("dst", out var tag1), Is.EqualTo("Hello")); Assert.That(subject.Get("dst", out _), Is.Null); subject.Finish(tag1.DeliveryTag); }
public void When_there_is_no_message_should_return_null() { messageRouter.Get("MyServiceDestination", out _).Returns((string)null); var result = messaging.TryStartMessage <IMetadataFile>("MyServiceDestination"); Assert.That(result, Is.Null); }
/// <summary> /// Try to start handling a waiting message. /// The message may be acknowledged or cancelled to finish reception. /// </summary> public IPendingMessage <T> TryStartMessage <T>(string destinationName) { var messageString = messageRouter.Get(destinationName, out var properties); if (messageString == null) { return(null); } T message; try { message = (T)serialiser.DeserialiseByStack(messageString, properties.OriginalType); } catch (Exception) { message = serialiser.Deserialise <T>(messageString); if (message == null) { throw; } } return(new PendingMessage <T>(messageRouter, message, properties, _messagePendingTimeout)); }