public void ReThrows_Exception_Given_Unhandled_Exception_Is_Thrown_When_Sending_OutboundMessage() { _mockSender.Setup(s => s.SendAsync(It.IsAny <Message>())).ThrowsAsync(new DivideByZeroException()); Func <Task> sendAction = async() => await _outboundGateway.SendAsync(OutboundMessage <MyEvent> .FromEntity(MyEvent.Default)).ConfigureAwait(false); sendAction.Should().Throw <DivideByZeroException>(); }
public async Task SendAsync <TMessage>( TMessage messageEntity, IDictionary <string, object> userProperties = null) where TMessage : class { var message = GenerateMessage(OutboundMessage <TMessage> .FromEntity(messageEntity, userProperties)); var sw = Stopwatch.StartNew(); await _sender.SendAsync(message).ConfigureAwait(false); TrackDependency(sw, nameof(SendAsync), userProperties); _logger.LogDebug(LogEventIds.OutboundGatewaySentSingle, $"Sent single message of type {typeof(TMessage).Name}"); }
public async Task SendMultipleAsync <TMessage>( IEnumerable <TMessage> messageEntities, IDictionary <string, object> userProperties = null) where TMessage : class { var messageList = messageEntities .Select(m => GenerateMessage(OutboundMessage <TMessage> .FromEntity(m, userProperties))) .ToList(); var sw = Stopwatch.StartNew(); await _sender.SendAsync(messageList).ConfigureAwait(false); TrackDependency(sw, nameof(SendMultipleAsync), userProperties); _logger.LogDebug(LogEventIds.OutboundGatewaySentMultiple, $"Sent {messageList.Count} messages of type {typeof(TMessage).Name}"); }
public async Task Include_Custom_Properties_Given_Valid_Entity_When_Sending_OutboundMessage(string key, string value) { var messageProps = new Dictionary <string, object> { { key, value }, { "Extra", "Prop" } }; await _outboundGateway.SendAsync(OutboundMessage <MyEvent> .FromEntity(MyEvent.Default, messageProps)).ConfigureAwait(false); _mockSender.Verify(s => s.SendAsync(It.Is <Message>( m => m.UserProperties.ContainsKey(key) && (string)m.UserProperties[key] == value && m.UserProperties.ContainsKey("Extra") && (string)m.UserProperties["Extra"] == "Prop")), Times.Once); }
public async Task Measure_Dependency_Duration_Given_Successful_Sending_When_Sending_OutboundMessage() { await _outboundGateway.SendAsync(OutboundMessage <MyEvent> .FromEntity(MyEvent.Default)).ConfigureAwait(false); _mockInstrumentor.Verify( s => s.TrackDependency( LogEventIds.OutboundGatewayMeasuredElapsedSingle, It.IsAny <long>(), It.IsAny <DateTimeOffset>(), MessageSendingGateway <MyEndpointConfig> .AzureServiceBusDependencyType, _options.EntityPath, "SendAsync", null, true, It.IsAny <IDictionary <string, object> >()), Times.Once); }
public async Task Attempt_To_Serialise_Message_From_Expected_Type_Given_Valid_Entity_When_Sending_OutboundMessage() { await _outboundGateway.SendAsync(OutboundMessage <MyEvent> .FromEntity(MyEvent.Default)).ConfigureAwait(false); _mockSerialiser.Verify(s => s.Serialise(MyEvent.Default), Times.Once); }
public async Task Send_Serialised_Message_Given_Valid_Message_When_Sending_OutboundMessage() { await _outboundGateway.SendAsync(OutboundMessage <MyEvent> .FromEntity(MyEvent.Default)).ConfigureAwait(false); _mockSender.Verify(s => s.SendAsync(It.Is <Message>(m => m.Body == SerialisedBytes)), Times.Once); }