public async Task SendAsync_NullCorrelationId_ThrowsException() { // Arrange var serviceBusSenderMock = new Mock <ServiceBusSender>(); var serviceBusSessionReceiverMock = new Mock <ServiceBusSessionReceiver>(); await using var mockedServiceBusClient = new MockedServiceBusClient( string.Empty, string.Empty, serviceBusSenderMock.Object, serviceBusSessionReceiverMock.Object); var serviceBusClientFactory = new Mock <IServiceBusClientFactory>(); serviceBusClientFactory.Setup(x => x.Create()).Returns(mockedServiceBusClient); await using var messageBusFactory = new AzureServiceBusFactory(serviceBusClientFactory.Object); var config = new MessageHubConfig("fake_value", "fake_value"); var target = new DataAvailableNotificationSender(messageBusFactory, config); var dataAvailable = new DataAvailableNotificationDto( Guid.Parse("F9A5115D-44EB-4AD4-BC7E-E8E8A0BC425E"), new ActorIdDto(Guid.NewGuid()), new MessageTypeDto("fake_value"), "RSM??", DomainOrigin.TimeSeries, true, 1); // Act + Assert await Assert .ThrowsAsync <ArgumentNullException>(() => target.SendAsync(null !, dataAvailable)) .ConfigureAwait(false); }
public async Task SendAsync_NullNotification_ThrowsException() { // Arrange var serviceBusSenderMock = new Mock <ServiceBusSender>(); var serviceBusSessionReceiverMock = new Mock <ServiceBusSessionReceiver>(); await using var mockedServiceBusClient = new MockedServiceBusClient( string.Empty, string.Empty, serviceBusSenderMock.Object, serviceBusSessionReceiverMock.Object); var serviceBusClientFactory = new Mock <IServiceBusClientFactory>(); serviceBusClientFactory.Setup(x => x.Create()).Returns(mockedServiceBusClient); await using var messageBusFactory = new AzureServiceBusFactory(serviceBusClientFactory.Object); var config = new MessageHubConfig("fake_value", "fake_value"); var target = new DataAvailableNotificationSender(messageBusFactory, config); // Act + Assert await Assert .ThrowsAsync <ArgumentNullException>(() => target.SendAsync("F9A5115D-44EB-4AD4-BC7E-E8E8A0BC425E", null !)) .ConfigureAwait(false); }
public static async Task Main(string[] args) { var configuration = BuildConfiguration(args); var configurationSection = configuration.GetSection("Values"); var connectionString = configurationSection["ServiceBusConnectionString"]; var dataAvailableQueueName = configurationSection["DATAAVAILABLE_QUEUE_NAME"]; var domainReplyQueueName = configurationSection["DOMAIN_REPLY_QUEUE_NAME"]; var recipient = configurationSection["recipient"]; var origin = configurationSection["origin"]; var messageType = configurationSection["type"]; var interval = int.TryParse(configurationSection["interval"], out var intervalParsed) ? intervalParsed : 1; var workers = int.TryParse(configurationSection["workers"], out var workersParsed) ? workersParsed : 1; var domainOrigin = origin != null?Enum.Parse <DomainOrigin>(origin, true) : DomainOrigin.TimeSeries; var serviceBusClientFactory = new ServiceBusClientFactory(connectionString); await using var azureServiceFactory = new AzureServiceBusFactory(serviceBusClientFactory); var messageHubConfig = new MessageHubConfig(dataAvailableQueueName, domainReplyQueueName); var dataAvailableNotificationSender = new DataAvailableNotificationSender(azureServiceFactory, messageHubConfig); await Task.WhenAll( Enumerable.Range(0, workers).Select(_ => Task.WhenAll(Enumerable.Range(0, interval / workers).Select(_ => { var msgDto = CreateDto(domainOrigin, messageType, recipient); var correlationId = Guid.NewGuid().ToString(); return(dataAvailableNotificationSender.SendAsync(correlationId, msgDto)); })))).ConfigureAwait(false); Console.WriteLine("Message sender completed."); }
public async Task SendAsync_ValidInput_AddsCorrectIntegrationEvents() { // Arrange var serviceBusSenderMock = new Mock <ServiceBusSender>(); var serviceBusSessionReceiverMock = new Mock <ServiceBusSessionReceiver>(); const string dataAvailableQueue = "sbq-dataavailable"; await using var mockedServiceBusClient = new MockedServiceBusClient( dataAvailableQueue, string.Empty, serviceBusSenderMock.Object, serviceBusSessionReceiverMock.Object); var serviceBusClientFactory = new Mock <IServiceBusClientFactory>(); serviceBusClientFactory.Setup(x => x.Create()).Returns(mockedServiceBusClient); await using var messageBusFactory = new AzureServiceBusFactory(serviceBusClientFactory.Object); var config = new MessageHubConfig(dataAvailableQueue, "fake_value"); var target = new DataAvailableNotificationSender(messageBusFactory, config); var dataAvailable = new DataAvailableNotificationDto( Guid.Parse("F9A5115D-44EB-4AD4-BC7E-E8E8A0BC425E"), new ActorIdDto(Guid.NewGuid()), new MessageTypeDto("fake_value"), "RSM??", DomainOrigin.TimeSeries, true, 1); // Act await target.SendAsync("F9A5115D-44EB-4AD4-BC7E-E8E8A0BC425E", dataAvailable).ConfigureAwait(false); // Assert serviceBusSenderMock.Verify( x => x.SendMessageAsync( It.Is <ServiceBusMessage>( message => message.ApplicationProperties.ContainsKey("OperationTimestamp") && message.ApplicationProperties.ContainsKey("OperationCorrelationId") && message.ApplicationProperties.ContainsKey("MessageVersion") && message.ApplicationProperties.ContainsKey("MessageType") && message.ApplicationProperties.ContainsKey("EventIdentification")), default), Times.Once); }