public static JobInstance scheduled(String jobConfigName, ResourceConfigs resourceConfigs) { JobInstance instance = new JobInstance(jobConfigName); instance.setId(999); instance.setIdentifier(defaultJobIdentifier(jobConfigName)); return instance; }
void resetForCopy() { if (!isCopy()) { setOriginalJobId(getId()); } setId(-1); rerun = false; stateTransitions.resetTransitionIds(); }
public static JobInstance buildEndingWithState(JobState endState, JobResult result, String jobConfig) { final JobInstance instance = new JobInstance(jobConfig); instance.setAgentUuid("1234"); instance.setId(1L); instance.setIdentifier(defaultJobIdentifier(jobConfig)); instance.setState(endState); instance.setTransitions(new JobStateTransitions()); DateTime now = new DateTime(); Date scheduledDate = now.minusMinutes(5).toDate(); instance.setScheduledDate(scheduledDate); List<JobState> orderedStates = orderedBuildStates(); DateTime stateDate = new DateTime(scheduledDate); for (JobState stateToCompareTo : orderedStates) { if (endState.compareTo(stateToCompareTo) >= 0) { instance.changeState(stateToCompareTo, stateDate.toDate()); stateDate = stateDate.plusMinutes(1); } } if (endState.equals(JobState.Completed)) { instance.setResult(result); } return instance; }
private JobInstance passJob(Date date, int id, int transitionIdStart, JobInstance jobInstance) { jobInstance.setId(id); jobInstance.changeState(JobState.Completed, date); for (JobStateTransition jobStateTransition : jobInstance.getTransitions()) { jobStateTransition.setId(++transitionIdStart); } jobInstance.setResult(JobResult.Passed); return jobInstance; }
@Test public void should_MaintainRerunOfReferences_InCaseOfMultipleCopyForRerunOperations() { Date old = new DateTime().minusDays(2).toDate(); JobInstance rails = jobInstance(old, "rails", 7, 10); JobInstance java = jobInstance(old, "java", 12, 22); Stage stage = stage(9, rails, java); stage.setCounter(2); Stage newStage = instanceFactory.createStageForRerunOfJobs(stage, a("rails"), new DefaultSchedulingContext("loser", new Agents()), StageConfigMother.custom("dev", "rails", "java"), new TimeProvider(), "md5"); newStage.setCounter(3); assertThat(newStage.getId(), is(-1l)); assertThat(newStage.getJobInstances().size(), is(2)); assertThat(newStage.isLatestRun(), is(true)); assertThat(newStage.getRerunOfCounter(), is(2)); JobInstance newJava = newStage.getJobInstances().getByName("java"); assertCopiedJob(newJava, 12l); //set id, to assert if original ends up pointing to copied job's id newJava.setId(18l); newStage = instanceFactory.createStageForRerunOfJobs(newStage, a("rails"), new DefaultSchedulingContext("loser", new Agents()), StageConfigMother.custom("dev", "rails", "java"), new TimeProvider(), "md5"); newStage.setCounter(4); assertThat(newStage.getId(), is(-1l)); assertThat(newStage.getJobInstances().size(), is(2)); assertThat(newStage.isLatestRun(), is(true)); assertThat(newStage.getRerunOfCounter(), is(2)); newJava = newStage.getJobInstances().getByName("java"); assertCopiedJob(newJava, 12l); }