### Question:
ReconPipelineManager extends SCMPipelineManager { @VisibleForTesting void addPipeline(Pipeline pipeline) throws IOException { getLock().writeLock().lock(); try { getPipelineStore().put(pipeline.getId(), pipeline); getStateManager().addPipeline(pipeline); getNodeManager().addPipeline(pipeline); } finally { getLock().writeLock().unlock(); } } ReconPipelineManager(ConfigurationSource conf,
      NodeManager nodeManager,
      Table<PipelineID, Pipeline> pipelineStore,
      EventPublisher eventPublisher); @Override void triggerPipelineCreation(); void removeInvalidPipelines(List<Pipeline> pipelinesFromScm);  }### Answer:
@Test public void testAddPipeline() throws IOException { Pipeline pipeline = getRandomPipeline(); NetworkTopology clusterMap = new NetworkTopologyImpl(conf); EventQueue eventQueue = new EventQueue(); NodeManager nodeManager = new SCMNodeManager(conf, scmStorageConfig, eventQueue, clusterMap); ReconPipelineManager reconPipelineManager = new ReconPipelineManager(conf, nodeManager, ReconSCMDBDefinition.PIPELINES.getTable(store), eventQueue); assertFalse(reconPipelineManager.containsPipeline(pipeline.getId())); reconPipelineManager.addPipeline(pipeline); assertTrue(reconPipelineManager.containsPipeline(pipeline.getId())); }