public void reallyCreateJobInstance(JobConfig config, JobInstances jobs, String uuid, String jobName, boolean runOnAllAgents, boolean runMultipleInstance, SchedulingContext context, final Clock clock) { JobInstance instance = new JobInstance(jobName, clock); instance.setPlan(createJobPlan(config, context)); instance.setAgentUuid(uuid); instance.setRunOnAllAgents(runOnAllAgents); instance.setRunMultipleInstance(runMultipleInstance); jobs.add(instance); }
@Test public void shouldAddEnvironmentVariablesToJobPlan() { EnvironmentVariablesConfig variablesConfig = new EnvironmentVariablesConfig(); variablesConfig.add("blahVar", "blahVal"); JobConfig jobConfig = new JobConfig("foo"); jobConfig.setVariables(variablesConfig); SchedulingContext context = new DefaultSchedulingContext(); JobPlan plan = instanceFactory.createJobPlan(jobConfig, context); assertThat(plan.getVariables(), hasItem(new EnvironmentVariable("blahVar", "blahVal"))); }
@Test public void shouldAddEnvironmentVariablesPresentInTheScheduleContextToJobPlan() { JobConfig jobConfig = new JobConfig("foo"); EnvironmentVariablesConfig variablesConfig = new EnvironmentVariablesConfig(); variablesConfig.add("blahVar", "blahVal"); SchedulingContext context = new DefaultSchedulingContext("Loser"); context = context.overrideEnvironmentVariables(variablesConfig); JobPlan plan = instanceFactory.createJobPlan(jobConfig, context); assertThat(plan.getVariables(), hasItem(new EnvironmentVariable("blahVar", "blahVal"))); }
@Test public void shouldCreateJobPlan() { ResourceConfigs resourceConfigs = new ResourceConfigs(); ArtifactConfigs artifactConfigs = new ArtifactConfigs(); JobConfig jobConfig = new JobConfig(new CaseInsensitiveString("test"), resourceConfigs, artifactConfigs); JobPlan plan = instanceFactory.createJobPlan(jobConfig, new DefaultSchedulingContext()); assertThat(plan, is(new DefaultJobPlan(new Resources(resourceConfigs), ArtifactPlan.toArtifactPlans(artifactConfigs), new ArrayList<>(), -1, new JobIdentifier(), null, new EnvironmentVariables(), new EnvironmentVariables(), null))); }
@Test public void shouldOverrideEnvironmentVariablesPresentInTheScheduleContextToJobPlan() { EnvironmentVariablesConfig variablesConfig = new EnvironmentVariablesConfig(); variablesConfig.add("blahVar", "blahVal"); variablesConfig.add("differentVar", "differentVal"); JobConfig jobConfig = new JobConfig("foo"); jobConfig.setVariables(variablesConfig); EnvironmentVariablesConfig overridenConfig = new EnvironmentVariablesConfig(); overridenConfig.add("blahVar", "originalVal"); overridenConfig.add("secondVar", "secondVal"); SchedulingContext context = new DefaultSchedulingContext(); context = context.overrideEnvironmentVariables(overridenConfig); JobPlan plan = instanceFactory.createJobPlan(jobConfig, context); assertThat(plan.getVariables().size(), is(3)); assertThat(plan.getVariables(), hasItem(new EnvironmentVariable("blahVar", "blahVal"))); assertThat(plan.getVariables(), hasItem(new EnvironmentVariable("secondVar", "secondVal"))); assertThat(plan.getVariables(), hasItem(new EnvironmentVariable("differentVar", "differentVal"))); }