public async Task Publish_TopicMapNotDefined_ThrowsInvalidOperation( string message, [Frozen] IMessageTypeTopicMap messageTypeTopicMap, SerializedMessagePublisher sut) { messageTypeTopicMap.Get(message.GetType()).ReturnsNull(); var ex = await Assert.ThrowsAsync <InvalidOperationException>(() => sut.Publish(message, None)); Assert.Equal($"Message type {message.GetType()} is not registered with: {messageTypeTopicMap.GetType()}.", ex.Message); }
public async Task Publish_SerializerReturnsNull_ThrowsInvalidOperation( string topic, string message, [Frozen] IMessageTypeTopicMap messageTypeTopicMap, [Frozen] ISerializer serializer, SerializedMessagePublisher sut) { var messageType = GetType(); messageTypeTopicMap.Get(topic).Returns(messageType); serializer.Serialize(message).ReturnsNull(); var ex = await Assert.ThrowsAsync <InvalidOperationException>(() => sut.Publish(message, None)); Assert.Equal( $"Serializer {serializer.GetType()} returned null for message of type {message.GetType()}.", ex.Message); }
public async Task Publish_SerializedMessage_CallsRawPublisher( string topic, bool message, byte[] serializedMessage, [Frozen] IRawMessagePublisher rawMessagePublisher, [Frozen] IMessageTypeTopicMap messageTypeTopicMap, [Frozen] ISerializer serializer, SerializedMessagePublisher sut) { // Arrange var messageType = message.GetType(); messageTypeTopicMap.Get(messageType).Returns(topic); serializer.Serialize(message).Returns(serializedMessage); // Act await sut.Publish(message, None); // Assert await rawMessagePublisher.Received().Publish(topic, serializedMessage, None); }
public async Task Publish_NullMessage_ThrowsArgumentNull(SerializedMessagePublisher sut) { var ex = await Assert.ThrowsAsync <ArgumentNullException>(() => sut.Publish(null as object, None)); Assert.Equal("message", ex.ParamName); }