@Test protected void getRemoteServiceNames_allReturned(TestInfo testInfo) throws Exception {
    String testSuffix = testSuffix(testInfo);
    // Assure a default store limit isn't hit by assuming if 50 are returned, all are returned
    List<Span> spans = IntStream.rangeClosed(0, 50)
      .mapToObj(i -> {
        String suffix = i < 10 ? "0" + i : String.valueOf(i);
        return spanBuilder(testSuffix)
          .id(i + 1)
          .remoteEndpoint(Endpoint.newBuilder().serviceName("yak" + suffix + testSuffix).build())
          .build();
      })
      .collect(Collectors.toList());
    accept(spans);

    assertThat(names().getRemoteServiceNames(spans.get(0).localServiceName()).execute())
      .containsExactlyInAnyOrderElementsOf(spans.stream().map(Span::remoteServiceName)::iterator);
  }
Base test for {@link ServiceAndSpanNames}.

<p>Subtypes should create a connection to a real backend, even if that backend is in-process.
zipkin-tests/src/main/java/zipkin2/storage/ITServiceAndSpanNames.java