public static Multimap<String, SourceDescription> fetchSourceDescriptions(
      final RemoteHostExecutor remoteHostExecutor
  ) {
    final List<SourceDescription> sourceDescriptions = Maps
        .transformValues(
            remoteHostExecutor.fetchAllRemoteResults().getLeft(),
            SourceDescriptionList.class::cast)
        .values()
        .stream()
        .flatMap((rsl) -> rsl.getSourceDescriptions().stream())
        .collect(toImmutableList());

    return Multimaps.index(sourceDescriptions, SourceDescription::getName);

  }
@SuppressWarnings({"unchecked", "rawtypes"})
  @Test
  public void itShouldReturnRemoteSourceDescriptionsGroupedByName() {
    // Given
    when(augmenter.fetchAllRemoteResults()).thenReturn(new Pair(response, ImmutableSet.of()));

    Multimap<String, SourceDescription> res = RemoteSourceDescriptionExecutor.fetchSourceDescriptions(augmenter);

    Map<String, List<SourceDescription>> queryHostCounts = descriptionLists.stream()
        .flatMap((v) -> v.getSourceDescriptions().stream())
        .collect(Collectors.groupingBy(SourceDescription::getName));

    assertThat(res.values(), everyItem(instanceOf(SourceDescription.class)));
    response.forEach((host, value) -> value.getSourceDescriptions().forEach(
        (sd) -> assertThat(res.get(sd.getName()), hasSize(queryHostCounts.get(sd.getName()).size()))
    ));
  }