@Test public void backups() { Balancer<Void, MockDatabase> balancer = this.factory.createBalancer(Collections.<MockDatabase>emptySet()); Iterable<MockDatabase> result = balancer.backups(); assertNotNull(result); Iterator<MockDatabase> backups = result.iterator(); assertFalse(backups.hasNext()); balancer = this.factory.createBalancer(Collections.singleton(this.databases[0])); result = balancer.backups(); assertNotNull(result); backups = result.iterator(); assertFalse(backups.hasNext()); balancer = this.factory.createBalancer( new HashSet<MockDatabase>(Arrays.asList(this.databases[0], this.databases[1]))); result = balancer.backups(); assertNotNull(result); backups = result.iterator(); assertTrue(backups.hasNext()); assertSame(this.databases[1], backups.next()); assertFalse(backups.hasNext()); balancer = this.factory.createBalancer(new HashSet<MockDatabase>(Arrays.asList(this.databases))); result = balancer.backups(); assertNotNull(result); backups = result.iterator(); assertTrue(backups.hasNext()); assertSame(this.databases[1], backups.next()); assertTrue(backups.hasNext()); assertSame(this.databases[2], backups.next()); assertFalse(backups.hasNext()); }