### Question:
AdManagerServiceClientFactoryHelper extends BaseAdsServiceClientFactoryHelper<
        AdManagerServiceClient, AdManagerSession, AdManagerServiceDescriptor> { @Override public String determineVersion(Class<?> interfaceClass) { Matcher m = VERSION_PATTERN.matcher(interfaceClass.getPackage().getName()); if (m.matches()) { String version = m.group(1); return version.replace('_', '.'); } else { return adsLibConfiguration.getDuckTypedVersion(); } } @SuppressWarnings("unchecked") /* See comments on soapClientHandler argument. */ @Inject  AdManagerServiceClientFactoryHelper(
      AdsServiceClientFactoryInterface<
              AdManagerServiceClient, AdManagerSession, AdManagerServiceDescriptor>
          adsServiceClientFactory,
      AdsServiceDescriptorFactoryInterface<AdManagerServiceDescriptor> adsServiceDescriptorFactory,
      @SuppressWarnings(
              "rawtypes") /* Guice binding for SoapClientHandlerInterface does not include
                           * the type argument T because it is bound in the SOAP
                           * toolkit-agnostic configuration module. Therefore, must use
                           * the raw type here. */
          SoapClientHandlerInterface soapClientHandler,
      AdsLibConfiguration adsLibConfiguration); @Override String determineVersion(Class<?> interfaceClass);  }### Answer:
@Test public void testVersionedPackage() throws Exception { AdManagerServiceClientFactoryHelper helper = new AdManagerServiceClientFactoryHelper( adsServiceClientFactory, adsServiceDescriptorFactory, soapClientHandler, adsLibConfiguration); assertEquals( "v201911", helper.determineVersion( com.google.api.ads.admanager.lib.factory.helper.testing.v201911.TestService.class)); }