- owner = strategy.newOwner(prepareViableCandidates(3), prepareStatistics(1,7,4));
+ strategy = new LeastLoadedCandidateSelectionStrategy(0L, prepareStatistics(1,7,4));
+ owner = strategy.newOwner(null, prepareViableCandidates(3));
+ assertEquals("member-1", owner);
+
+ assertStatistics(strategy.getLocalStatistics(), 2,7,4);
+
+ // Let member-3 become the owner
+ strategy = new LeastLoadedCandidateSelectionStrategy(0L, prepareStatistics(3,3,0));
+ owner = strategy.newOwner(null, prepareViableCandidates(3));
+ assertEquals("member-3", owner);
+
+ assertStatistics(strategy.getLocalStatistics(), 3,3,1);
+
+ // member-3 is no longer viable so choose a new owner
+ owner = strategy.newOwner("member-3", prepareViableCandidates(2));