public void Should_create_a_valid_filtering_string()
        {
            var          filter   = new SqlSubscriptionFilter(typeof(SomeEvent));
            var          result   = filter.Serialize();
            const string expected = @"[NServiceBus.EnclosedMessageTypes] LIKE '%NServiceBus.Azure.WindowsAzureServiceBus.Tests.Topology.MetaModel.SomeEvent%'";

            Assert.That(result, Is.EqualTo(expected));
        }
Example #2
0
        public async Task Should_not_create_create_a_duplicate_subscription__issue_811()
        {
            var nativeManager    = NamespaceManager.CreateFromConnectionString(AzureServiceBusConnectionString.Value);
            var namespaceManager = new NamespaceManagerAdapterInternal(nativeManager);

            var topicForTest = $"{topicPath}_issue811";

            try
            {
                if (!await nativeManager.TopicExistsAsync(topicForTest))
                {
                    await nativeManager.CreateTopicAsync(new TopicDescription(topicForTest));
                }

                var subscriptionName = nameof(SomeEvent);

                await namespaceManager.CreateSubscription(new SubscriptionDescription(topicForTest, subscriptionName), new SqlSubscriptionFilter_UsedPriorToVersion9(typeof(SomeEvent)).Serialize());

                var creator  = new AzureServiceBusSubscriptionCreatorV6(new TopologySubscriptionSettings());
                var metadata = new SubscriptionMetadataInternal
                {
                    SubscriptionNameBasedOnEventWithNamespace = typeof(SomeEvent).FullName,
                    Description = Guid.NewGuid().ToString()
                };
                var properSqlFilter = new SqlSubscriptionFilter(typeof(SomeEvent)).Serialize();

                await creator.Create(topicForTest, subscriptionName, metadata, properSqlFilter, namespaceManager);

                var foundSubcriptions = await nativeManager.GetSubscriptionsAsync(topicForTest);

                Assert.AreEqual(1, foundSubcriptions.Count());
            }
            finally
            {
                await nativeManager.DeleteTopicAsync(topicForTest);
            }
        }