public void RoundRobin() { var memberIds = new[] { Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid() }; var lb = new RoundRobinLoadBalancer(); Assert.That(lb.Count, Is.EqualTo(0)); Assert.Throws <InvalidOperationException>(() => lb.GetMember()); lb.NotifyMembers(memberIds); Assert.That(lb.Count, Is.EqualTo(3)); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[1])); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[2])); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[0])); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[1])); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[2])); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[0])); memberIds = new[] { Guid.NewGuid(), Guid.NewGuid() }; lb.NotifyMembers(memberIds); Assert.That(lb.Count, Is.EqualTo(2)); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[1])); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[0])); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[1])); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[0])); lb.NotifyMembers(new Guid[0]); Assert.That(lb.Count, Is.EqualTo(0)); Assert.Throws <InvalidOperationException>(() => lb.GetMember()); }
public void RoundRobin() { var memberIds = new[] { Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid() }; var lb = new RoundRobinLoadBalancer(); Assert.That(lb.Count, Is.EqualTo(0)); Assert.That(lb.GetMember(), Is.EqualTo(Guid.Empty)); lb.SetMembers(memberIds); Assert.That(lb.Count, Is.EqualTo(3)); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[1])); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[2])); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[0])); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[1])); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[2])); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[0])); memberIds = new[] { Guid.NewGuid(), Guid.NewGuid() }; lb.SetMembers(memberIds); Assert.That(lb.Count, Is.EqualTo(2)); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[1])); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[0])); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[1])); Assert.That(lb.GetMember(), Is.EqualTo(memberIds[0])); lb.SetMembers(new Guid[0]); Assert.That(lb.Count, Is.EqualTo(0)); Assert.That(lb.GetMember(), Is.EqualTo(Guid.Empty)); }