public void testAreBalanced() {
final LocatorLoadSnapshot sn = new LocatorLoadSnapshot();
Assert.assertTrue(sn.hasBalancedConnections(null));
Assert.assertTrue(sn.hasBalancedConnections("a"));
final ServerLocation l1 = new ServerLocation("localhost", 1);
final ServerLocation l2 = new ServerLocation("localhost", 2);
final ServerLocation l3 = new ServerLocation("localhost", 3);
sn.addServer(l1, new String[] {"a"}, new ServerLoad(0, 1, 0, 1));
sn.addServer(l2, new String[] {"a", "b"}, new ServerLoad(0, 1, 0, 1));
sn.addServer(l3, new String[] {"b"}, new ServerLoad(0, 1, 0, 1));
Assert.assertTrue(sn.hasBalancedConnections(null));
Assert.assertTrue(sn.hasBalancedConnections("a"));
Assert.assertTrue(sn.hasBalancedConnections("b"));
sn.updateLoad(l1, new ServerLoad(1,1,0,1));
Assert.assertTrue(sn.hasBalancedConnections(null));
Assert.assertTrue(sn.hasBalancedConnections("a"));
Assert.assertTrue(sn.hasBalancedConnections("b"));
sn.updateLoad(l2, new ServerLoad(2,1,0,1));
Assert.assertFalse(sn.hasBalancedConnections(null));
Assert.assertTrue(sn.hasBalancedConnections("a"));
Assert.assertFalse(sn.hasBalancedConnections("b"));
}