### Question:
PipelineExecutionListener implements PipelineEventListener { @Override public void afterPipelineExecution(AfterPipelineExecutionEvent apee) { pipelineStatusChangeEvent.fire(new PipelineStatusChangeEvent(new PipelineExecutionTraceKey(apee.getExecutionId()), PipelineStatus.FINISHED)); } PipelineExecutionListener(); @Inject  PipelineExecutionListener(final Event<PipelineStatusChangeEvent> pipelineStatusChangeEvent,
                                     final Event<StageStatusChangeEvent> stageStatusChangeEvent); @Override void beforePipelineExecution(BeforePipelineExecutionEvent bpee); @Override void afterPipelineExecution(AfterPipelineExecutionEvent apee); @Override void beforeStageExecution(BeforeStageExecutionEvent bsee); @Override void onStageError(OnErrorStageExecutionEvent oesee); @Override void afterStageExecution(AfterStageExecutionEvent asee); @Override void onPipelineError(OnErrorPipelineExecutionEvent oepee);  }### Answer:
@Test public void testAfterPipelineExecution() { listener.afterPipelineExecution(new AfterPipelineExecutionEvent(EXECUTION_ID, pipeline)); verify(pipelineStatusChangeEvent, times(1)).fire(new PipelineStatusChangeEvent(traceKey, PipelineStatus.FINISHED)); }