### Question:
BaseAdsServiceClientFactoryHelper implements AdsServiceClientFactoryHelper<C, S, D> { @Override public C createAdsServiceClient(D adsServiceDescriptor, S adsSession) throws ServiceException { Object soapClient = createSoapClient(adsServiceDescriptor); C adsServiceClient = createServiceClient(soapClient, adsServiceDescriptor, adsSession); try { adsServiceClient.setEndpointAddress(adsServiceDescriptor.getEndpointAddress(adsSession .getEndpoint())); } catch (MalformedURLException e) { throw new ServiceException("Unexpected exception", e); } return adsServiceClient; } BaseAdsServiceClientFactoryHelper(
      AdsServiceClientFactoryInterface<C, S, D> adsServiceClientFactory,
      AdsServiceDescriptorFactoryInterface<D> adsServiceDescriptorFactory,
      SoapClientHandlerInterface<?> soapClientHandler); @Override C createAdsServiceClient(D adsServiceDescriptor, S adsSession); @Override D createServiceDescriptor(Class<?> interfaceClass, String version); @Override void checkServiceClientPreconditions(S adsSession, Class<?> interfaceClass);  }### Answer:
@Test public void testCreateAdsServiceClient() { when(soapClientHandler.createSoapClient(adsServiceDescriptor)).thenReturn(soapClient); when(adsServiceClientFactory.create(soapClient, adsServiceDescriptor, adsSession)) .thenReturn(adsServiceClient); AdsServiceClient<AdsSession, AdsServiceDescriptor> testAdsServiceClient = abstractAdsServiceClientFactoryHelper.createAdsServiceClient(adsServiceDescriptor, adsSession); assertSame(adsServiceClient, testAdsServiceClient); }