public void Creates_subscription_on_each_topic_in_bundle() { var container = new TransportPartsContainer(); var settings = new SettingsHolder(); container.Register(typeof(SettingsHolder), () => settings); var extensions = new TransportExtensions <AzureServiceBusTransport>(settings); settings.SetDefault("NServiceBus.Routing.EndpointName", "sales"); extensions.UseForwardingTopology().NamespacePartitioning().AddNamespace(Name, Connectionstring); var topology = new ForwardingTopology(container); topology.Initialize(settings); var sectionManager = container.Resolve <ITopologySectionManager>(); sectionManager.DetermineResourcesToCreate(new QueueBindings()); var section = sectionManager.DetermineResourcesToSubscribeTo(typeof(SomeTestEvent)); Assert.That(section.Entities.Count(), Is.EqualTo(2)); // TODO: need to verify that subscription is done on each topic }
public void Determines_there_should_be_a_topic_bundle_created() { var container = new TransportPartsContainer(); var settings = new SettingsHolder(); container.Register(typeof(SettingsHolder), () => settings); var extensions = new TransportExtensions <AzureServiceBusTransport>(settings); settings.SetDefault("NServiceBus.Routing.EndpointName", "sales"); extensions.NamespacePartitioning().AddNamespace(Name, Connectionstring); var topology = new ForwardingTopology(container); topology.Initialize(settings); var sectionManager = container.Resolve <ITopologySectionManager>(); var definition = sectionManager.DetermineResourcesToCreate(new QueueBindings()); var result = definition.Entities.Where(ei => ei.Type == EntityType.Topic && ei.Namespace.ConnectionString == Connectionstring && ei.Path.StartsWith("bundle-")); Assert.That(result.Count(), Is.EqualTo(2)); Assert.That(result, Has.Exactly(1).Matches <EntityInfo>(x => x.Path == "bundle-1")); Assert.That(result, Has.Exactly(1).Matches <EntityInfo>(x => x.Path == "bundle-2")); }
#pragma warning disable 618 ITopologySectionManager SetupForwardingTopology(TransportPartsContainer container, string enpointname) { var settings = new SettingsHolder(); container.Register(typeof(SettingsHolder), () => settings); var extensions = new TransportExtensions <AzureServiceBusTransport>(settings); settings.SetDefault("NServiceBus.Routing.EndpointName", enpointname); extensions.NamespacePartitioning().AddNamespace("namespace1", AzureServiceBusConnectionString.Value); var topology = new ForwardingTopology(container); topology.Initialize(settings); return(container.Resolve <ITopologySectionManager>()); }
public void Should_fail_sanitization_for_invalid_endpoint_name(string reasonToFail, string endpointName) { var container = new TransportPartsContainer(); var settings = new SettingsHolder(); container.Register(typeof(SettingsHolder), () => settings); var extensions = new TransportExtensions <AzureServiceBusTransport>(settings); settings.SetDefault("NServiceBus.Routing.EndpointName", endpointName); extensions.NamespacePartitioning().AddNamespace(Name, Connectionstring); var topology = new ForwardingTopology(container); topology.Initialize(settings); var sectionManager = container.Resolve <ITopologySectionManager>(); Assert.Throws <Exception>(() => sectionManager.DetermineResourcesToCreate(new QueueBindings()), "Was expected to fail: " + reasonToFail); }
public void Determines_there_should_be_a_queue_with_same_name_as_endpointname() { var container = new TransportPartsContainer(); var settings = new SettingsHolder(); container.Register(typeof(SettingsHolder), () => settings); var extensions = new TransportExtensions <AzureServiceBusTransport>(settings); settings.SetDefault("NServiceBus.Routing.EndpointName", "sales"); extensions.NamespacePartitioning().AddNamespace(Name, Connectionstring); var topology = new ForwardingTopology(container); topology.Initialize(settings); var sectionManager = container.Resolve <ITopologySectionManager>(); var definition = sectionManager.DetermineResourcesToCreate(new QueueBindings()); Assert.AreEqual(1, definition.Entities.Count(ei => ei.Path == "sales" && ei.Type == EntityType.Queue && ei.Namespace.ConnectionString == Connectionstring)); }
public void Determines_the_namespace_from_partitioning_strategy() { var container = new TransportPartsContainer(); var settings = new SettingsHolder(); container.Register(typeof(SettingsHolder), () => settings); var extensions = new TransportExtensions <AzureServiceBusTransport>(settings); settings.SetDefault("NServiceBus.Routing.EndpointName", "sales"); extensions.NamespacePartitioning().AddNamespace(Name, Connectionstring); var topology = new ForwardingTopology(container); topology.Initialize(settings); var sectionManager = container.Resolve <ITopologySectionManager>(); var definition = sectionManager.DetermineResourcesToCreate(new QueueBindings()); // ReSharper disable once RedundantArgumentDefaultValue var namespaceInfo = new RuntimeNamespaceInfo(Name, Connectionstring); Assert.IsTrue(definition.Namespaces.Any(nsi => nsi == namespaceInfo)); }
public void Should_creates_subscription_entities_marked_as_not_be_listened_to() { var container = new TransportPartsContainer(); var settings = new SettingsHolder(); container.Register(typeof(SettingsHolder), () => settings); var extensions = new TransportExtensions <AzureServiceBusTransport>(settings); settings.SetDefault("NServiceBus.Routing.EndpointName", "sales"); extensions.UseForwardingTopology().NamespacePartitioning().AddNamespace(Name, Connectionstring); var topology = new ForwardingTopology(container); topology.Initialize(settings); var sectionManager = container.Resolve <ITopologySectionManager>(); sectionManager.DetermineResourcesToCreate(new QueueBindings()); var section = sectionManager.DetermineResourcesToSubscribeTo(typeof(SomeTestEvent)); Assert.IsFalse(section.Entities.Any(x => x.ShouldBeListenedTo)); }
public void Creates_subscription_path_matching_the_subscribing_endpoint_name() { var container = new TransportPartsContainer(); var settings = new SettingsHolder(); container.Register(typeof(SettingsHolder), () => settings); var extensions = new TransportExtensions <AzureServiceBusTransport>(settings); settings.SetDefault("NServiceBus.Routing.EndpointName", "sales"); extensions.UseForwardingTopology().NamespacePartitioning().AddNamespace(Name, Connectionstring); var topology = new ForwardingTopology(container); topology.Initialize(settings); var sectionManager = container.Resolve <ITopologySectionManager>(); sectionManager.DetermineResourcesToCreate(new QueueBindings()); var section = sectionManager.DetermineResourcesToSubscribeTo(typeof(SomeTestEvent)); Assert.IsTrue(section.Entities.All(e => e.Path == "sales"), "Subscription name should be matching subscribing endpoint name, but it wasn't."); }