test_class.declarator: callableReportDownloader
test_class.modifier: private
test_class.original_string: private CallableReportDownloader callableReportDownloader;
test_class.type: CallableReportDownloader
test_class.var_name: callableReportDownloader
test_class.declarator: adWordsSession
test_class.modifier: private
test_class.original_string: private ImmutableAdWordsSession adWordsSession;
test_class.type: ImmutableAdWordsSession
test_class.var_name: adWordsSession
test_class.declarator: reportDefinition = new ReportDefinition()
test_class.modifier: private
test_class.original_string: private ReportDefinition reportDefinition = new ReportDefinition();
test_class.type: ReportDefinition
test_class.var_name: reportDefinition
test_class.file: aw-reporting/src/test/java/com/google/api/ads/adwords/awreporting/downloader/CallableReportDownloaderTest.java
test_class.identifier: CallableReportDownloaderTest
test_case.body: @Test
    public void testRun() throws ReportProcessingException {
  
      final ReportDownloadResponse mockReportDownloadResponse = mock(ReportDownloadResponse.class);
      when(mockReportDownloadResponse.getInputStream()).thenReturn(null);
  
      callableReportDownloader =
          new CallableReportDownloader(adWordsSession, reportDefinition) {
            @Override
            File handleReportStreamResult(InputStream reportStream) throws ReportProcessingException {
              return new File("");
            }
  
            @Override
            ReportDownloadResponse getReportDownloadResponse() {
              return mockReportDownloadResponse;
            }
          };
  
      callableReportDownloader.call();
      verify(mockReportDownloadResponse, times(1)).getInputStream();
    }
test_case.class_method_signature: CallableReportDownloaderTest.testRun()
test_case.full_signature: @Test public void testRun()
test_case.identifier: testRun
test_case.invocations: mock thenReturn when getInputStream call getInputStream verify times
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testRun()
focal_class.declarator: logger = LoggerFactory.getLogger(CallableReportDownloader.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger logger = LoggerFactory.getLogger(CallableReportDownloader.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: session
focal_class.modifier: private final
focal_class.original_string: private final ImmutableAdWordsSession session;
focal_class.type: ImmutableAdWordsSession
focal_class.var_name: session
focal_class.declarator: reportDefinition
focal_class.modifier: private final
focal_class.original_string: private final ReportDefinition reportDefinition;
focal_class.type: ReportDefinition
focal_class.var_name: reportDefinition
focal_class.file: aw-reporting/src/main/java/com/google/api/ads/adwords/awreporting/downloader/CallableReportDownloader.java
focal_class.identifier: CallableReportDownloader
focal_class.interfaces: implements Callable<File>
focal_class.class_method_signature: CallableReportDownloader.CallableReportDownloader(
        ImmutableAdWordsSession session, ReportDefinition reportDefinition)
focal_class.full_signature: public  CallableReportDownloader(
        ImmutableAdWordsSession session, ReportDefinition reportDefinition)
focal_class.identifier: CallableReportDownloader
focal_class.modifiers: public
focal_class.parameters: (
        ImmutableAdWordsSession session, ReportDefinition reportDefinition)
focal_class.signature:  CallableReportDownloader(
        ImmutableAdWordsSession session, ReportDefinition reportDefinition)
focal_class.class_method_signature: CallableReportDownloader.call()
focal_class.full_signature: @Override public File call()
focal_class.identifier: call
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: File
focal_class.signature: File call()
focal_class.class_method_signature: CallableReportDownloader.getReportDownloadResponse()
focal_class.full_signature: @VisibleForTesting ReportDownloadResponse getReportDownloadResponse()
focal_class.identifier: getReportDownloadResponse
focal_class.modifiers: @VisibleForTesting
focal_class.parameters: ()
focal_class.return: ReportDownloadResponse
focal_class.signature: ReportDownloadResponse getReportDownloadResponse()
focal_class.class_method_signature: CallableReportDownloader.handleReportStreamResult(InputStream reportStream)
focal_class.full_signature: @VisibleForTesting File handleReportStreamResult(InputStream reportStream)
focal_class.identifier: handleReportStreamResult
focal_class.modifiers: @VisibleForTesting
focal_class.parameters: (InputStream reportStream)
focal_class.return: File
focal_class.signature: File handleReportStreamResult(InputStream reportStream)
focal_method.body: @Override
    public File call() throws ReportProcessingException {
      ReportDownloadResponse reportDownloadResponse = getReportDownloadResponse();
  
      InputStream inputStream = reportDownloadResponse.getInputStream();
      return handleReportStreamResult(inputStream);
    }
focal_method.class_method_signature: CallableReportDownloader.call()
focal_method.full_signature: @Override public File call()
focal_method.identifier: call
focal_method.invocations: getReportDownloadResponse getInputStream handleReportStreamResult
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: File
focal_method.signature: File call()