public void Balancer_Multithread() { var configuration = new ConfigurationBuilder() .AddInMemoryCollection(new[] { new KeyValuePair <string, string>("Servers:0", "localhost:9000") }) .Build(); var balancer = new Balancer(configuration); var pool = new List <Thread>(); for (var i = 0; i < 150; i++) { var thread = new Thread(() => { Thread.Sleep(new Random().Next(0, 50)); var url = balancer.AllocateServer(); }); thread.Start(); pool.Add(thread); } SpinWait.SpinUntil(() => pool.All(x => !x.IsAlive)); Assert.Equal(150, balancer.GetConnectionsCount("localhost:9000")); }
public void Balancer_AllocateServer() { var configuration = new ConfigurationBuilder() .AddInMemoryCollection(new[] { new KeyValuePair <string, string>("Servers:0", "localhost:9000") }) .Build(); var balancer = new Balancer(configuration); var url = balancer.AllocateServer(); Assert.Equal(1, balancer.GetConnectionsCount(url)); }