package hudson.plugins.parameterizedtrigger.test; import hudson.model.Cause; import hudson.model.FreeStyleBuild; import hudson.model.FreeStyleProject; import hudson.model.Queue; import hudson.plugins.parameterizedtrigger.BuildTrigger; import hudson.plugins.parameterizedtrigger.BuildTriggerConfig; import hudson.plugins.parameterizedtrigger.ResultCondition; import hudson.plugins.parameterizedtrigger.SubversionRevisionBuildParameters; import hudson.scm.SubversionSCM; import hudson.scm.SubversionTagAction; import hudson.util.NullStream; import java.io.IOException; import java.io.PrintWriter; import org.jvnet.hudson.test.HudsonTestCase; import org.tmatesoft.svn.core.SVNException; public class SubversionRevisionBuildTriggerConfigTest extends HudsonTestCase { protected void setJavaNetCredential() throws SVNException, IOException { // set the credential to access svn.dev.java.net hudson.getDescriptorByType(SubversionSCM.DescriptorImpl.class) .postCredential("https://svn.dev.java.net/svn/hudson/", "guest", "", null, new PrintWriter(new NullStream())); } public void testRevisionParameter() throws Exception { setJavaNetCredential(); FreeStyleProject p1 = createFreeStyleProject(); FreeStyleProject p2 = createFreeStyleProject(); p2.setQuietPeriod(1); p1 .setScm(new SubversionSCM( "https://svn.dev.java.net/svn/hudson/trunk/hudson/test-projects/trivial-ant@13000")); p2 .setScm(new SubversionSCM( "https://svn.dev.java.net/svn/hudson/trunk/hudson/test-projects/trivial-ant")); p1.getPublishersList().add( new BuildTrigger(new BuildTriggerConfig(p2.getName(), ResultCondition.SUCCESS, new SubversionRevisionBuildParameters()))); hudson.rebuildDependencyGraph(); FreeStyleBuild b1 = p1.scheduleBuild2(0, new Cause.UserCause()).get(); Queue.Item q = hudson.getQueue().getItem(p2); assertNotNull("p2 should be in queue (quiet period): " + getLog(b1), q); q.getFuture().get(); FreeStyleBuild b2 = p2.getLastBuild(); assertEquals(b1.getAction(SubversionTagAction.class).getTags().keySet() .iterator().next().revision, b2.getAction(SubversionTagAction.class).getTags().keySet() .iterator().next().revision); } }