docstr: Asserts that a task is deferred and a GCSBlobTrigger will be fired
  when the GCSObjectExistenceAsyncSensor is executed.
code: def test_gcs_object_existence_async_sensor(self, mock_hook):
      """
      Asserts that a task is deferred and a GCSBlobTrigger will be fired
      when the GCSObjectExistenceAsyncSensor is executed.
      """
      with pytest.warns(
          AirflowProviderDeprecationWarning,
          match=self.depcrecation_message,
      ):
          task = GCSObjectExistenceAsyncSensor(
              task_id="task-id",
              bucket=TEST_BUCKET,
              object=TEST_OBJECT,
              google_cloud_conn_id=TEST_GCP_CONN_ID,
          )
      mock_hook.return_value.exists.return_value = False
      with pytest.raises(TaskDeferred) as exc:
          task.execute(context)
      assert isinstance(
          exc.value.trigger, GCSBlobTrigger
      ), "Trigger is not a GCSBlobTrigger"
  
imports: from __future__ import annotations
  from datetime import datetime, timedelta, timezone
  from unittest import mock
  import pendulum
  import pytest
  from google.cloud.storage.retry import DEFAULT_RETRY
  from airflow.exceptions import AirflowProviderDeprecationWarning, AirflowSensorTimeout, AirflowSkipException, TaskDeferred
  from airflow.models.dag import DAG, AirflowException
  from airflow.providers.google.cloud.sensors.gcs import GCSObjectExistenceAsyncSensor, GCSObjectExistenceSensor, GCSObjectsWithPrefixExistenceSensor, GCSObjectUpdateSensor, GCSUploadSessionCompleteSensor, ts_function
  from airflow.providers.google.cloud.triggers.gcs import GCSBlobTrigger, GCSCheckBlobUpdateTimeTrigger, GCSPrefixBlobTrigger, GCSUploadSessionTrigger
label_desc: Use image node_id 1 for calling the TestGoogleCloudStorageObjectAsyncSensor obj's underlying member method code with example usage: obj.test_gcs_object_existence_async_sensor(mock_hook) without return types