@Test public void testDeterministicOneHost() { final Set<String> chosenHosts = Sets.newHashSet(); final HostPickingStrategy strategy1 = HostPickingStrategies.deterministicOneHost(""); for (int i = 0; i < NUM_ITERATIONS; i++) { chosenHosts.add(strategy1.pickHost(HOSTS)); } final HostPickingStrategy strategy2 = HostPickingStrategies.deterministicOneHost(""); for (int i = 0; i < NUM_ITERATIONS; i++) { chosenHosts.add(strategy2.pickHost(HOSTS)); } assertEquals(1, chosenHosts.size()); }
@Test public void testDeterministic() { final List<String> order = Lists.newArrayList(); final Set<String> chosenHosts = Sets.newHashSet(); final HostPickingStrategy strategy1 = HostPickingStrategies.deterministic(""); for (int i = 0; i < NUM_ITERATIONS; i++) { final String picked = strategy1.pickHost(HOSTS); order.add(picked); chosenHosts.add(picked); } // should've hit them all assertEquals(HOSTS.size(), chosenHosts.size()); final HostPickingStrategy strategy2 = HostPickingStrategies.deterministic(""); for (int i = 0; i < NUM_ITERATIONS; i++) { assertEquals("at index " + i, order.get(i), strategy2.pickHost(HOSTS)); } }
@Test public void testRandom() { final List<String> order = Lists.newArrayList(); final Set<String> chosenHosts = Sets.newHashSet(); final HostPickingStrategy strategy1 = HostPickingStrategies.random(); for (int i = 0; i < NUM_ITERATIONS; i++) { final String picked = strategy1.pickHost(HOSTS); order.add(picked); chosenHosts.add(picked); } // should've hit them all assertEquals(HOSTS.size(), chosenHosts.size()); final HostPickingStrategy strategy2 = HostPickingStrategies.random(); boolean different = false; for (int i = 0; i < NUM_ITERATIONS; i++) { if (!order.get(i).equals(strategy2.pickHost(HOSTS))) { different = true; break; } } assertTrue(different); }