public void Round_robins_across_instances_in_pool() { var settings = new DefaultConfigurationValues().Apply(new SettingsHolder()); var creator = new InterceptedMessageReceiverCreator(); var lifecycleManager = new MessageReceiverLifeCycleManager(creator, settings); var poolSize = settings.Get <int>(WellKnownConfigurationKeys.Connectivity.NumberOfClientsPerEntity); var first = lifecycleManager.Get("myqueue", AzureServiceBusConnectionString.Value); var next = first; var reuseInPool = false; for (var i = 0; i < poolSize - 1; i++) { var n = lifecycleManager.Get("myqueue", AzureServiceBusConnectionString.Value); reuseInPool &= next == n; next = n; } var second = lifecycleManager.Get("myqueue", AzureServiceBusConnectionString.Value); Assert.IsFalse(reuseInPool); Assert.AreEqual(first, second); }
public void Creates_a_pool_of_clients_per_entity() { var settings = new DefaultConfigurationValues().Apply(new SettingsHolder()); var poolSize = settings.Get <int>(WellKnownConfigurationKeys.Connectivity.NumberOfClientsPerEntity); var creator = new InterceptedMessageReceiverCreator(); var lifecycleManager = new MessageReceiverLifeCycleManager(creator, settings); lifecycleManager.Get("myqueue", AzureServiceBusConnectionString.Value); Assert.AreEqual(poolSize, creator.InvocationCount); }
public void Replaces_receivers_when_closed() { var settings = new DefaultConfigurationValues().Apply(new SettingsHolder()); settings.Set(WellKnownConfigurationKeys.Connectivity.NumberOfClientsPerEntity, 1); // pool size of 1 simplifies the test var creator = new InterceptedMessageReceiverCreator(); var lifecycleManager = new MessageReceiverLifeCycleManager(creator, settings); var first = (InterceptedMessageReceiver)lifecycleManager.Get("myqueue", AzureServiceBusConnectionString.Value); first.Close(); var second = (InterceptedMessageReceiver)lifecycleManager.Get("myqueue", AzureServiceBusConnectionString.Value); Assert.AreEqual(2, creator.InvocationCount); Assert.AreNotEqual(first, second); }