public async Task when_publishing_subsequent_message_it_should_assign_proper_message_ids() { var messageRouter = new FakeMessageRouter(); var sut = new VentureMessagePublisher(messageRouter); var message = new object(); var correlationId = _stringCreator.Get(length: 10); var precedingMessageId = _stringCreator.Get(length: 10); await sut.PublishSubsequentMessage( message, DateTimeOffset.UtcNow, correlationId, precedingMessageId); messageRouter.Message.Should().BeSameAs(message, "it should pass message without changes"); messageRouter.MessageId.Should().NotBeNullOrWhiteSpace("it should generate message ID"); messageRouter.CorrelationId.Should().Be(correlationId, "it should pass correlation ID without changes"); messageRouter.CausationId.Should().Be(precedingMessageId, "it should use preceding message ID as causation ID"); }
public void when_publishing_subsequent_message_with_some_attribute_not_specified_it_should_fail() { var messageRouter = new FakeMessageRouter(); var publisher = new VentureMessagePublisher(messageRouter); var message = new object(); var correlationId = _stringCreator.Get(length: 10); var precedingMessageId = _stringCreator.Get(length: 10); var generatedOnUtc = DateTimeOffset.UtcNow; Func <Task> sut = () => publisher.PublishSubsequentMessage <object>( message: null, generatedOnUtc, correlationId, precedingMessageId); sut.Should().Throw <ArgumentNullException>().Where(exception => exception.ParamName.Equals("message")); sut = () => publisher.PublishSubsequentMessage( message, generatedOnUtc, correlationId: null, precedingMessageId); sut.Should().Throw <ArgumentNullException>().Where( exception => exception.ParamName.Equals("correlationId"), "null is not valid correlation ID"); sut = () => publisher.PublishSubsequentMessage( message, generatedOnUtc, string.Empty, precedingMessageId); sut.Should().Throw <ArgumentNullException>().Where( exception => exception.ParamName.Equals("correlationId"), "an empty string is not valid correlation ID"); sut = () => publisher.PublishSubsequentMessage( message, generatedOnUtc, WhitespaceString, precedingMessageId); sut.Should().Throw <ArgumentNullException>().Where( exception => exception.ParamName.Equals("correlationId"), "a whitespace string is not valid correlation ID"); sut = () => publisher.PublishSubsequentMessage( message, generatedOnUtc, correlationId, precedingMessageId: null); sut.Should().Throw <ArgumentNullException>().Where( exception => exception.ParamName.Equals("precedingMessageId"), "null is not valid preceding message ID"); sut = () => publisher.PublishSubsequentMessage( message, generatedOnUtc, correlationId, string.Empty); sut.Should().Throw <ArgumentNullException>().Where( exception => exception.ParamName.Equals("precedingMessageId"), "an empty string is not valid preceding message ID"); sut = () => publisher.PublishSubsequentMessage( message, generatedOnUtc, correlationId, WhitespaceString); sut.Should().Throw <ArgumentNullException>().Where( exception => exception.ParamName.Equals("precedingMessageId"), "a whitespace string is not valid preceding message ID"); }