code: def testResolverUnionChannel(self):
      one_channel = types.Channel(type=standard_artifacts.Examples)
      another_channel = types.Channel(type=standard_artifacts.Examples)
      unioned_channel = channel.union([one_channel, another_channel])
      rnode = resolver.Resolver(
          strategy_class=latest_artifact_strategy.LatestArtifactStrategy,
          config={"desired_num_of_artifacts": 5},
          unioned_channel=unioned_channel,
      )
      self.assertDictEqual(
          rnode.exec_properties,
          {
              resolver.RESOLVER_STRATEGY_CLASS: latest_artifact_strategy.LatestArtifactStrategy,
              resolver.RESOLVER_CONFIG: {"desired_num_of_artifacts": 5},
          },
      )
      self.assertEqual(
          rnode.outputs["unioned_channel"].type_name,
          unioned_channel.type_name,
      )
  
imports: import tensorflow
  from tfx import types
  from tfx.dsl.components.common import resolver
  from tfx.dsl.input_resolution import canned_resolver_functions
  from tfx.dsl.input_resolution.strategies import latest_artifact_strategy
  from tfx.orchestration import data_types
  from tfx.orchestration import metadata
  from tfx.types import channel
  from tfx.types import standard_artifacts
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 2 for calling the ResolverTest obj's underlying member method code with example usage: obj.testResolverUnionChannel() without return types