code: def test_safe_search_detection(self, annotator_client_mock):
      # Given
      safe_search_detection_method = (
          annotator_client_mock.safe_search_detection
      )
      safe_search_detection_method.return_value = AnnotateImageResponse(
          safe_search_annotation=SafeSearchAnnotation(
              adult="VERY_UNLIKELY",
              spoof="VERY_UNLIKELY",
              medical="VERY_UNLIKELY",
              violence="VERY_UNLIKELY",
              racy="VERY_UNLIKELY",
          )
      )
  
      # When
      self.hook.safe_search_detection(image=DETECT_TEST_IMAGE)
  
      # Then
      safe_search_detection_method.assert_called_once_with(
          image=DETECT_TEST_IMAGE,
          max_results=None,
          retry=DEFAULT,
          timeout=None,
      )
  
imports: from __future__ import annotations
  from unittest import mock
  import pytest
  from google.api_core.gapic_v1.method import DEFAULT
  from google.cloud.vision_v1 import AnnotateImageRequest, AnnotateImageResponse, EntityAnnotation, Feature, Product, ProductSearchClient, ProductSet, ReferenceImage, SafeSearchAnnotation
  from google.protobuf.json_format import MessageToDict
  from airflow.exceptions import AirflowException
  from airflow.providers.google.cloud.hooks.vision import ERR_DIFF_NAMES, ERR_UNABLE_TO_CREATE, CloudVisionHook
  from airflow.providers.google.common.consts import CLIENT_INFO
  from tests.providers.google.cloud.utils.base_gcp_mock import mock_base_gcp_hook_default_project_id
label_desc: Use image node_id 37 for calling the TestGcpVisionHook obj's underlying member method code with example usage: obj.test_safe_search_detection(annotator_client_mock) without return types