public async void WhenSubscriptionMessagesListenerIsSubscribed_PreviousSubscriptionExists_ThenSubscriptionIsCreatedAgain() { var settings = TestSettings.MqSettingsForTopic(); var tickSeconds = 15; var name = settings.TopicNameBuilder(typeof(TestMessageForTopic)); var nameSpace = NamespaceManager.CreateFromConnectionString(settings.ConnectionString); var topic = await nameSpace.CreateTopicAsync(name); var subscriptionName = $"{topic.Path}.{settings.TopicSubscriberId}"; var initiallyCreated = DateTime.UtcNow; var subscriptionDescription = new SubscriptionDescription(topic.Path, subscriptionName); await nameSpace.CreateSubscriptionAsync(subscriptionDescription); Thread.Sleep(TimeSpan.FromSeconds(tickSeconds)); var subscriber = new AzureBusTopicSubscriber(settings, _ => { }, _ => { }); var listener = subscriber.Messages <TestMessageForTopic>(); listener.Subscribe(_ => { }); var subscription = await nameSpace.GetSubscriptionAsync(topic.Path, subscriptionName); var newlyCreated = subscription.CreatedAt > initiallyCreated.AddSeconds(tickSeconds); Assert.True(newlyCreated); }
public async void WhenSusbcriptionIsRemoved_ThenSubscriptionIsCreatedAgain() { var settings = TestSettings.MqSettingsForTopic(); var subscriber = new AzureBusTopicSubscriber(settings, _ => { }, _ => { }); var publisher = new AzureBusTopicPublisher(settings, _ => { }, _ => throw new InvalidOperationException("Errorlogger")); var id = Guid.NewGuid(); var listener = subscriber.Messages <TestMessageForTopic>(); var name = settings.TopicNameBuilder(typeof(TestMessageForTopic)); var nameSpace = NamespaceManager.CreateFromConnectionString(settings.ConnectionString); var topic = await nameSpace.GetTopicAsync(name); var subscriptions = await nameSpace.GetSubscriptionsAsync(topic.Path); foreach (var subscriptionDescription in subscriptions) { await nameSpace.DeleteSubscriptionAsync(topic.Path, subscriptionDescription.Name); } Thread.Sleep(TimeSpan.FromSeconds(30)); await publisher.SendAsync(new TestMessageForTopic { ExampleId = id }); await listener .Where(x => x.ExampleId == id) .Timeout(TimeSpan.FromSeconds(30)) .FirstAsync(); }
public async void WhenTopicIsRemoved_ThenTopicIsCreatedAgain() { var settings = TestSettings.MqSettingsForTopic(); var subscriber = new AzureBusTopicSubscriber(settings, _ => { }, _ => { }); var publisher = new AzureBusTopicPublisher(settings, _ => { }, _ => throw new InvalidOperationException("Errorlogger")); var id = Guid.NewGuid(); var listener = subscriber.Messages <TestMessageForTopic>(); var name = settings.TopicNameBuilder(typeof(TestMessageForTopic)); var nameSpace = NamespaceManager.CreateFromConnectionString(settings.ConnectionString); var topic = await nameSpace.GetTopicAsync(name); topic.Should().NotBeNull("Topic should exist at this point"); await nameSpace.DeleteTopicAsync(name); Thread.Sleep(TimeSpan.FromSeconds(30)); await publisher.SendAsync(new TestMessageForTopic { ExampleId = id }); await listener .Where(x => x.ExampleId == id) .Timeout(TimeSpan.FromSeconds(30)) .FirstAsync(); }
public async void WhenMessageIsSend_CorrelationIdCanBeUsed() { var settings = TestSettings.MqSettingsForTopic(); var publisher = new AzureBusTopicPublisher(settings, _ => { }, _ => { }); var subscriber = new AzureBusTopicSubscriber(settings, _ => { }, _ => { }); var id = Guid.NewGuid(); var listener = subscriber.Messages <TestMessageForTopic>(); await publisher.SendAsync(new TestMessageForTopic { CorrelationId = id.ToString() }); await listener .Where(x => x.CorrelationId == id.ToString()) .Timeout(TimeSpan.FromSeconds(10)) .FirstAsync(); }
public async void WhenMessageIsSend_ThenItCanBeReceived() { var settings = TestSettings.MqSettingsForTopic(); var publisher = new AzureBusTopicPublisher(settings, _ => { }, _ => { }); var subscriber = new AzureBusTopicSubscriber(settings, _ => { }, _ => { }); var id = Guid.NewGuid(); var listener = subscriber.Messages <TestMessageForTopic>(); await publisher.SendAsync(new TestMessageForTopic { ExampleId = id }); await listener .Where(x => x.ExampleId == id) .Timeout(TimeSpan.FromSeconds(10)) .FirstAsync(); }