public Date getScheduledDate() { Date earliestScheduledDate = null; for (StageInstanceModel stage : this) { if (!stage.isScheduled()) { continue; } Date stageDate = stage.getScheduledDate(); if (earliestScheduledDate == null || stageDate.before(earliestScheduledDate)) { earliestScheduledDate = stageDate; } } return earliestScheduledDate; }
public StageInstanceModel latestStage() { if (size() == 0) { return null; } StageInstanceModel latest = first(); for (int i = 1; i < size(); i++) { StageInstanceModel current = get(i); if (!(current instanceof NullStageHistoryItem) && current.getScheduledDate().after(latest.getScheduledDate())) { latest = current; } } return latest; }
@Test public void shouldReturnNullIfJobHistoryIsBlank() throws Exception { StageInstanceModel stageHistoryItem = new StageInstanceModel(); stageHistoryItem.setBuildHistory(new JobHistory()); assertThat(stageHistoryItem.getScheduledDate(), is(nullValue())); }
@Test public void shouldReturnDateIfJobHistoryIsNotBlank() throws Exception { StageInstanceModel stageHistoryItem = new StageInstanceModel(); JobHistory jobHistory = new JobHistory(); Date date = new Date(1367472329111L); jobHistory.addJob("jobName", JobState.Building, JobResult.Passed, date); stageHistoryItem.setBuildHistory(jobHistory); assertThat(stageHistoryItem.getScheduledDate(), is(date)); } }
public static void toJSON(OutputWriter jsonOutputWriter, StageInstanceModel model, String pipelineName, String pipelineCounter) { jsonOutputWriter .addLinks(linkWriter -> { linkWriter.addLink("self", Routes.Stage.self(pipelineName, pipelineCounter, model.getName(), model.getCounter())); }) .add("name", model.getName()) .add("counter", model.getCounter()) .add("status", model.getState().name()) .add("approved_by", model.getApprovedBy()) .add("scheduled_at", model.getScheduledDate()); if (model.getPreviousStage() != null) { jsonOutputWriter.addChild("previous_stage", childWriter -> { StageRepresenter.toJSON(childWriter, model.getPreviousStage(), pipelineName, pipelineCounter); }); } } }
public static void toJSON(OutputWriter jsonOutputWriter, StageInstanceModel model, String pipelineName, String pipelineCounter) { jsonOutputWriter .addLinks(linkWriter -> { linkWriter.addLink("self", Routes.Stage.self(pipelineName, pipelineCounter, model.getName(), model.getCounter())); }) .add("name", model.getName()) .add("counter", model.getCounter()) .add("status", model.getState().name()) .add("approved_by", model.getApprovedBy()) .add("scheduled_at", model.getScheduledDate()); if (model.getState().stageResult() == StageResult.Cancelled) { jsonOutputWriter.add("cancelled_by", model.getCancelledBy() == null ? "GoCD" : model.getCancelledBy()); } if (model.getPreviousStage() != null) { jsonOutputWriter.addChild("previous_stage", childWriter -> { StageRepresenter.toJSON(childWriter, model.getPreviousStage(), pipelineName, pipelineCounter); }); } } }