@Test public void shouldRetryOnSameNodeToFailureAndThenRedirect() { // TODO(ssouza): make 4 = // 1 + CassandraClientPoolImpl.MAX_TRIES_TOTAL - CassandraClientPoolImpl.MAX_TRIES_SAME_HOST int numHosts = 4; List<InetSocketAddress> hostList = Lists.newArrayList(); for (int i = 0; i < numHosts; i++) { hostList.add(new InetSocketAddress(i)); } CassandraClientPoolImpl clientPool = throwingClientPoolWithServersInCurrentPool( ImmutableSet.copyOf(hostList), new SocketTimeoutException()); assertThatThrownBy(() -> runNoopWithRetryOnHost(hostList.get(0), clientPool)) .isInstanceOf(Exception.class); verifyNumberOfAttemptsOnHost(hostList.get(0), clientPool, CassandraClientPoolImpl.getMaxRetriesPerHost()); for (int i = 1; i < numHosts; i++) { verifyNumberOfAttemptsOnHost(hostList.get(i), clientPool, 1); } }