code: def testRun(self):
      component_a = _FakeComponent(
          _FakeComponentSpecA(output=types.Channel(type=_ArtifactTypeA))
      )
      component_b = _FakeComponent(
          _FakeComponentSpecB(
              a=component_a.outputs["output"],
              output=types.Channel(type=_ArtifactTypeB),
          )
      )
      component_c = _FakeComponent(
          _FakeComponentSpecC(
              a=component_a.outputs["output"],
              output=types.Channel(type=_ArtifactTypeC),
          )
      )
      component_c.add_upstream_node(component_b)
      component_d = _FakeComponent(
          _FakeComponentSpecD(
              b=component_b.outputs["output"],
              c=component_c.outputs["output"],
              output=types.Channel(type=_ArtifactTypeD),
          )
      )
      component_e = _FakeComponent(
          _FakeComponentSpecE(
              a=component_a.outputs["output"],
              b=component_b.outputs["output"],
              d=component_d.outputs["output"],
              output=types.Channel(type=_ArtifactTypeE),
          )
      )
  
      test_pipeline = pipeline.Pipeline(
          pipeline_name="x",
          pipeline_root="y",
          metadata_connection_config=metadata_store_pb2.ConnectionConfig(),
          components=[
              component_d,
              component_c,
              component_a,
              component_b,
              component_e,
          ],
      )
  
      beam_dag_runner.BeamDagRunner().run(test_pipeline)
      self.assertEqual(
          _executed_components,
          [
              "_FakeComponent.A",
              "_FakeComponent.B",
              "_FakeComponent.C",
              "_FakeComponent.D",
              "_FakeComponent.E",
          ],
      )
  
imports: import sys
  import unittest
  from unittest import mock
  import tensorflow
  from tfx import types
  from tfx.dsl.components.base import base_component
  from tfx.dsl.components.base import base_executor
  from tfx.dsl.components.base import executor_spec
  from tfx.orchestration import pipeline
  from tfx.orchestration.beam.legacy import beam_dag_runner
  from tfx.types.component_spec import ChannelParameter
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 1 for calling the BeamDagRunnerTest obj's underlying member method code with example usage: obj.testRun() without return types