protected void preparePipelineExecutionTraceSetup() { Pipeline pipeline = mockPipeline(PIPELINE_NAME, STAGE_NUMBER); trace = mockPipelineExecutionTrace(EXECUTION_ID, pipeline, PipelineStatus.RUNNING, PipelineStatus.SCHEDULED); //set an arbitrary number of consecutive stages as finished and the last as running. displayableStages = new ArrayList<>(); int finishedStages = 5; for (int i = 0; i < finishedStages; i++) { trace.setStageStatus(pipeline.getStages().get(i).getName(), PipelineStatus.FINISHED); displayableStages.add(pipeline.getStages().get(i)); } trace.setStageStatus(pipeline.getStages().get(finishedStages).getName(), PipelineStatus.RUNNING); displayableStages.add(pipeline.getStages().get(finishedStages)); }
protected void preparePipelineExecutionTraceSetup() { Pipeline pipeline = mockPipeline(PIPELINE_NAME, STAGE_NUMBER); trace = mockPipelineExecutionTrace(EXECUTION_ID, pipeline, PipelineStatus.RUNNING, PipelineStatus.SCHEDULED); //set an arbitrary number of consecutive stages as finished and the last as running. displayableStages = new ArrayList<>(); int finishedStages = 5; for (int i = 0; i < finishedStages; i++) { trace.setStageStatus(pipeline.getStages().get(i).getName(), PipelineStatus.FINISHED); displayableStages.add(pipeline.getStages().get(i)); } trace.setStageStatus(pipeline.getStages().get(finishedStages).getName(), PipelineStatus.RUNNING); displayableStages.add(pipeline.getStages().get(finishedStages)); }
private void setupPipeline(final PipelineExecutionTrace trace) { clearPipeline(); boolean showStep = true; Pipeline pipeline = trace.getPipeline(); for (int i = 0; showStep && i < pipeline.getStages().size(); i++) { Stage stage = pipeline.getStages().get(i); PipelineStatus stageStatus = trace.getStageStatus(stage.getName()); showStep = showStage(stageStatus); if (showStep) { if (i > 0) { TransitionPresenter transitionPresenter = newTransitionPresenter(); currentTransitions.add(transitionPresenter); pipelinePresenter.addStage(transitionPresenter.getView()); } final StagePresenter stagePresenter = newStagePresenter(); stagePresenter.setup(stage); stagePresenter.setState(buildStageState(stageStatus)); pipelinePresenter.addStage(stagePresenter.getView()); currentStages.add(stage); stagePresenters.put(stage, stagePresenter); } } }
private void setupPipeline(final PipelineExecutionTrace trace) { clearPipeline(); boolean showStep = true; Pipeline pipeline = trace.getPipeline(); for (int i = 0; showStep && i < pipeline.getStages().size(); i++) { Stage stage = pipeline.getStages().get(i); PipelineStatus stageStatus = trace.getStageStatus(stage.getName()); showStep = showStage(stageStatus); if (showStep) { if (i > 0) { TransitionPresenter transitionPresenter = newTransitionPresenter(); currentTransitions.add(transitionPresenter); pipelinePresenter.addStage(transitionPresenter.getView()); } final StagePresenter stagePresenter = newStagePresenter(); stagePresenter.setup(stage); stagePresenter.setState(buildStageState(stageStatus)); pipelinePresenter.addStage(stagePresenter.getView()); currentStages.add(stage); stagePresenters.put(stage, stagePresenter); } } }
/** * an item with a pipeline execution trace was initially set and a new stage status not yet drawn has changed. */ @Test public void testOnStageStatusChangeNewStageChanged() { preparePipelineExecutionTraceSetup(); RuntimeListItem item = new RuntimeListItem(RUNTIME_NAME, trace); //setup the presenter. presenter.setup(item); int initialStagePresentersSize = stagePresenters.size(); //emulate the next stage consecutive stage finishing. Stage stage = item.getPipelineTrace().getPipeline().getStages().get(displayableStages.size()); presenter.onStageStatusChange(new StageStatusChangeEvent(trace.getKey(), stage.getName(), PipelineStatus.RUNNING)); //an additional stage was added. verify(stagePresenterInstance, times(initialStagePresentersSize + 1)).get(); //the newly stage is set to EXECUTING in the UI StagePresenter stagePresenter = stagePresenters.get(stagePresenters.size() - 1); verify(stagePresenter, times(1)).setup(stage); verify(stagePresenter, times(1)).setState(State.EXECUTING); }
/** * an item with a pipeline execution trace was initially set and a new stage status not yet drawn has changed. */ @Test public void testOnStageStatusChangeNewStageChanged() { preparePipelineExecutionTraceSetup(); RuntimeListItem item = new RuntimeListItem(RUNTIME_NAME, trace); //setup the presenter. presenter.setup(item); int initialStagePresentersSize = stagePresenters.size(); //emulate the next stage consecutive stage finishing. Stage stage = item.getPipelineTrace().getPipeline().getStages().get(displayableStages.size()); presenter.onStageStatusChange(new StageStatusChangeEvent(trace.getKey(), stage.getName(), PipelineStatus.RUNNING)); //an additional stage was added. verify(stagePresenterInstance, times(initialStagePresentersSize + 1)).get(); //the newly stage is set to EXECUTING in the UI StagePresenter stagePresenter = stagePresenters.get(stagePresenters.size() - 1); verify(stagePresenter, times(1)).setup(stage); verify(stagePresenter, times(1)).setState(State.EXECUTING); }
protected PipelineExecutionTrace mockPipelineExecutionTrace(String executionId, Pipeline pipeline, PipelineStatus initialPipelineStatus, PipelineStatus initialStagesStatus) { PipelineExecutionTrace trace = new PipelineExecutionTrace(new PipelineExecutionTraceKey(executionId)); trace.setPipeline(pipeline); trace.setPipelineStatus(initialPipelineStatus); pipeline.getStages().forEach(stage -> trace.setStageStatus(stage.getName(), initialStagesStatus)); return trace; } }
protected PipelineExecutionTrace mockPipelineExecutionTrace(String executionId, Pipeline pipeline, PipelineStatus initialPipelineStatus, PipelineStatus initialStagesStatus) { PipelineExecutionTrace trace = new PipelineExecutionTrace(new PipelineExecutionTraceKey(executionId)); trace.setPipeline(pipeline); trace.setPipelineStatus(initialPipelineStatus); pipeline.getStages().forEach(stage -> trace.setStageStatus(stage.getName(), initialStagesStatus)); return trace; } }
private void assertPipelineTrace(PipelineExecutionTrace trace) { assertEquals(PIPELINE_ID, trace.getPipeline().getKey().getId()); assertEquals(PIPELINE_EXECUTION_ID, trace.getKey().getId()); assertEquals(PipelineStatus.RUNNING, trace.getPipelineStatus()); assertEquals(stageItemList.getItems().size(), trace.getPipeline().getStages().size()); for (int i = 0; i < STAGE_ITEMS_COUNT; i++) { PipelineStageItem stageItem = stageItemList.getItems().get(i); Stage stage = trace.getPipeline().getStages().get(i); assertEquals(stageItem.getName(), stage.getName()); assertEquals(stageItem.getStatus(), trace.getStageStatus(stage.getName()).name()); assertEquals(stageItem.getErrorMessage(), trace.getStageError(stage.getName())); } }
private void assertPipelineTrace(PipelineExecutionTrace trace) { assertEquals(PIPELINE_ID, trace.getPipeline().getKey().getId()); assertEquals(PIPELINE_EXECUTION_ID, trace.getKey().getId()); assertEquals(PipelineStatus.RUNNING, trace.getPipelineStatus()); assertEquals(PIPELINE_ERROR, trace.getPipelineError().getError()); assertEquals(PIPELINE_ERROR_DETAIL, trace.getPipelineError().getErrorDetail()); assertEquals(stageItemList.getItems().size(), trace.getPipeline().getStages().size()); for (int i = 0; i < STAGE_ITEMS_COUNT; i++) { PipelineStageItem stageItem = stageItemList.getItems().get(i); Stage stage = trace.getPipeline().getStages().get(i); assertEquals(stageItem.getName(), stage.getName()); assertEquals(stageItem.getStatus(), trace.getStageStatus(stage.getName()).name()); assertEquals(stageItem.getStageError(), trace.getStageError(stage.getName()).getError()); assertEquals(stageItem.getStageErrorDetail(), trace.getStageError(stage.getName()).getErrorDetail()); } }