code: def test_get_openlineage_facets_on_complete_empty_table(self, hook):
      hook.return_value.insert_job.return_value = MagicMock(
          job_id=pytest.real_job_id, error_result=False
      )
      hook.return_value.split_tablename.return_value = (
          PROJECT_ID,
          DATASET,
          TABLE,
      )
      hook.return_value.get_client.return_value.get_table.return_value = (
          TEST_EMPTY_TABLE
      )
  
      expected_output_dataset_facets = {
          "schema": SchemaDatasetFacet(fields=[]),
          "documentation": DocumentationDatasetFacet(description=""),
          "columnLineage": ColumnLineageDatasetFacet(fields={}),
      }
  
      operator = GCSToBigQueryOperator(
          project_id=JOB_PROJECT_ID,
          task_id=TASK_ID,
          bucket=TEST_BUCKET,
          source_objects=[
              TEST_OBJECT_NO_WILDCARD,
              TEST_OBJECT_WILDCARD,
          ],
          destination_project_dataset_table=TEST_EXPLICIT_DEST,
      )
  
      operator.execute(context=mock.MagicMock())
  
      lineage = operator.get_openlineage_facets_on_complete(None)
      assert len(lineage.inputs) == 2
      assert len(lineage.outputs) == 1
      assert lineage.outputs[0] == Dataset(
          namespace="bigquery",
          name=TEST_EXPLICIT_DEST,
          facets=expected_output_dataset_facets,
      )
      assert lineage.inputs[0] == Dataset(
          namespace=f"gs://{TEST_BUCKET}",
          name=TEST_OBJECT_NO_WILDCARD,
          facets={"schema": SchemaDatasetFacet(fields=[])},
      )
      assert lineage.inputs[1] == Dataset(
          namespace=f"gs://{TEST_BUCKET}",
          name="/",
          facets={
              "schema": SchemaDatasetFacet(fields=[]),
              "symlink": SymlinksDatasetFacet(
                  identifiers=[
                      SymlinksDatasetFacetIdentifiers(
                          namespace=f"gs://{TEST_BUCKET}",
                          name=TEST_OBJECT_WILDCARD,
                          type="file",
                      )
                  ]
              ),
          },
      )
  
imports: from __future__ import annotations
  import json
  from unittest import mock
  from unittest.mock import MagicMock, call
  import pytest
  from google.cloud.bigquery import DEFAULT_RETRY, Table
  from google.cloud.exceptions import Conflict
  from openlineage.client.facet import ColumnLineageDatasetFacet, ColumnLineageDatasetFacetFieldsAdditional, ColumnLineageDatasetFacetFieldsAdditionalInputFields, DocumentationDatasetFacet, ExternalQueryRunFacet, SchemaDatasetFacet, SchemaField, SymlinksDatasetFacet, SymlinksDatasetFacetIdentifiers
  from openlineage.client.run import Dataset
  from airflow.exceptions import AirflowException, TaskDeferred
  from airflow.models import DAG
  from airflow.models.dagrun import DagRun
  from airflow.models.taskinstance import TaskInstance
  from airflow.providers.google.cloud.transfers.gcs_to_bigquery import GCSToBigQueryOperator
  from airflow.providers.google.cloud.triggers.bigquery import BigQueryInsertJobTrigger
  from airflow.utils.timezone import datetime
  from airflow.utils.types import DagRunType
label_desc: Use image node_id 28 for calling the TestGCSToBigQueryOperator obj's underlying member method code with example usage: obj.test_get_openlineage_facets_on_complete_empty_table(hook) without return types