code: def testResolverFnContext(self):
      channel = canned_resolver_functions.latest_created(
          channel_utils.artifact_query(
              artifact_type=test_utils.DummyArtifact
          ),
          n=2,
      )
  
      self.assertIsInstance(channel, resolved_channel.ResolvedChannel)
      self.assertEqual(
          channel.invocation.function.__name__, "latest_created"
      )
      self.assertEndsWith(
          channel.invocation.function.__module__,
          "canned_resolver_functions",
      )
      self.assertTrue(
          hasattr(channel.invocation.function, "__signature__")
      )
  
      self.assertLen(channel.invocation.args, 1)
      self.assertIsInstance(
          channel.invocation.args[0], resolver_op.InputNode
      )
  
      self.assertEqual(channel.invocation.kwargs, {"n": 2})
  
imports: from typing import Sequence
  import tensorflow
  from tfx import types
  from tfx.dsl.control_flow import for_each
  from tfx.dsl.input_resolution import canned_resolver_functions
  from tfx.dsl.input_resolution import resolver_op
  from tfx.dsl.input_resolution.ops import test_utils
  from tfx.orchestration import pipeline
  from tfx.orchestration.portable import inputs_utils
  from tfx.orchestration.portable.input_resolution import exceptions
  from tfx.types import channel_utils
  from tfx.types import resolved_channel
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 25 for calling the CannedResolverFunctionsTest obj's underlying member method code with example usage: obj.testResolverFnContext() without return types