public void test() throws Exception { Project<?, ?> projectA = createFreeStyleProject("projectA"); List<AbstractBuildParameters> buildParameters = new ArrayList<AbstractBuildParameters>(); buildParameters.add(new CurrentBuildParameters()); BlockingBehaviour neverFail = new BlockingBehaviour("never", "never", "never"); BlockableBuildTriggerConfig config = new BlockableBuildTriggerConfig("projectB", neverFail, buildParameters); projectA.getBuildersList().add(new TriggerBuilder(config)); CaptureEnvironmentBuilder builder = new CaptureEnvironmentBuilder(); projectA.getBuildersList().add(builder); Project projectB = createFreeStyleProject("projectB"); projectB.setQuietPeriod(0); hudson.rebuildDependencyGraph(); // Just to make sure they differ from projectA's build numbers. projectB.updateNextBuildNumber(3); int expectedBuildNumber = projectB.getNextBuildNumber(); projectA.scheduleBuild2(0, new UserCause()).get(); EnvVars envVars = builder.getEnvVars(); assertThat(envVars, notNullValue()); assertThat(envVars, hasEntry("LAST_TRIGGERED_JOB_NAME", "projectB")); assertThat( envVars, hasEntry("TRIGGERED_BUILD_NUMBER_projectB", Integer.toString(expectedBuildNumber))); // The below test for expectedBuildNumber is meaningless if the // value doesn't update, though it should always update. assertThat(projectB.getNextBuildNumber(), is(not(expectedBuildNumber))); expectedBuildNumber = projectB.getNextBuildNumber(); projectA.scheduleBuild2(0, new UserCause()).get(); envVars = builder.getEnvVars(); assertThat(envVars, notNullValue()); assertThat(envVars, hasEntry("LAST_TRIGGERED_JOB_NAME", "projectB")); assertThat( envVars, hasEntry("TRIGGERED_BUILD_NUMBER_projectB", Integer.toString(expectedBuildNumber))); }