code: def testTaskDependency(self):
      channel_1 = types.Channel(type=_InputArtifact)
      component_1 = _BasicComponent(folds=10, input=channel_1)
      channel_2 = types.Channel(type=_InputArtifact)
      component_2 = _BasicComponent(folds=10, input=channel_2)
      self.assertEqual(
          False, component_2 in component_1.downstream_nodes
      )
      self.assertEqual(False, component_1 in component_2.upstream_nodes)
      component_1.add_downstream_node(component_2)
      self.assertEqual(
          True, component_2 in component_1.downstream_nodes
      )
      self.assertEqual(True, component_1 in component_2.upstream_nodes)
  
imports: 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.proto import example_gen_pb2
  from tfx.types import component_spec
  from tfx.types.system_executions import SystemExecution
  from tfx.utils import json_utils
label_desc: Use image node_id 10 for calling the ComponentTest obj's underlying member method code with example usage: obj.testTaskDependency() without return types