code: def testDo(self, mock_client):
      # Mock query result schema for _BigQueryConverter.
      mock_client.return_value.query.return_value.result.return_value.schema = (
          self._schema
      )
  
      output_data_dir = os.path.join(
          os.environ.get(
              "TEST_UNDECLARED_OUTPUTS_DIR", self.get_temp_dir()
          ),
          self._testMethodName,
      )
  
      # Create output dict.
      examples = standard_artifacts.Examples()
      examples.uri = output_data_dir
      output_dict = {"examples": [examples]}
  
      # Create exe properties.
      exec_properties = {
          "input_config": proto_utils.proto_to_json(
              example_gen_pb2.Input(
                  splits=[
                      example_gen_pb2.Input.Split(
                          name="bq",
                          pattern="SELECT i, b, f, s FROM `fake`",
                      ),
                  ]
              )
          ),
          "output_config": proto_utils.proto_to_json(
              example_gen_pb2.Output(
                  split_config=example_gen_pb2.SplitConfig(
                      splits=[
                          example_gen_pb2.SplitConfig.Split(
                              name="train", hash_buckets=2
                          ),
                          example_gen_pb2.SplitConfig.Split(
                              name="eval", hash_buckets=1
                          ),
                      ]
                  )
              )
          ),
      }
  
      # Run executor.
      big_query_example_gen = executor.Executor(
          base_beam_executor.BaseBeamExecutor.Context(
              beam_pipeline_args=["--project=test-project"]
          )
      )
      big_query_example_gen.Do({}, output_dict, exec_properties)
  
      mock_client.assert_called_with(project="test-project")
  
      self.assertEqual(
          artifact_utils.encode_split_names(["train", "eval"]),
          examples.split_names,
      )
  
      # Check BigQuery example gen outputs.
      train_output_file = os.path.join(
          examples.uri, "Split-train", "data_tfrecord-00000-of-00001.gz"
      )
      eval_output_file = os.path.join(
          examples.uri, "Split-eval", "data_tfrecord-00000-of-00001.gz"
      )
      self.assertTrue(fileio.exists(train_output_file))
      self.assertTrue(fileio.exists(eval_output_file))
      self.assertGreater(
          fileio.open(train_output_file).size(),
          fileio.open(eval_output_file).size(),
      )
  
imports: import json
  import os
  import random
  from unittest import mock
  import apache_beam
  from apache_beam.testing import util
  from google.cloud import bigquery
  import tensorflow
  from tfx.dsl.components.base import base_beam_executor
  from tfx.dsl.io import fileio
  from tfx.extensions.google_cloud_big_query import utils
  from tfx.extensions.google_cloud_big_query.example_gen import executor
  from tfx.proto import example_gen_pb2
  from tfx.types import artifact_utils
  from tfx.types import standard_artifacts
  from tfx.utils import proto_utils
label_desc: Use image node_id 3 for calling the ExecutorTest obj's underlying member method code with example usage: obj.testDo(mock_client) without return types