public void Test_that_WithIncreasedRetryCount_creates_new_message_instance_with_incremented_RetryCount_value() { var consumerMock = new Mock <IMessageConsumer>(); var right = new EnvelopedMessage ( Enumerable.Empty <byte>(), consumerMock.Object, string.Empty, string.Empty, 42, string.Empty ); for (var i = 0; i < 10; i++) { var left = right.WithIncreasedRetryCount(); Assert.AreNotEqual(left, right); Assert.AreEqual(1, left.RetryCount - right.RetryCount); right = left; } }