DefaultPrimer extends Primer { @Override public void primeProtobufAsync() { boolean needsPrime = isProtobufPrimed.compareAndSet(false, true); if (needsPrime) { primeClassNamesResourceAsync(protobufResourcePath); } } DefaultPrimer(); @VisibleForTesting  DefaultPrimer(
      Consumer<String> classloaderStrategy,
      String grpcResourcePath,
      String protobufResourcePath,
      ExecutorService executorService); @Override void primeGrpcAsync(); @Override void primeProtobufAsync(); @Override void primeAllVersionsAsync(); @Override void primeCredentialsAsync(Credentials credentials);  }
@Test public void primeProtobuf_loadsClassNamesFromResource() { new DefaultPrimer(classloaderStrategy, "not used", "/primer/1-entry", DIRECT_EXECUTOR) .primeProtobufAsync(); verify(classloaderStrategy).accept("1"); }