Mercurial > hg > mercurial
view mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/SubrepoPatchTest.java @ 694:6e33b89c682b
do not sync repository (assume it was synced beforehand)
author | eugene.petrenko@gmail.com |
---|---|
date | Thu, 19 Dec 2013 19:22:16 +0100 |
parents | 49a03af60439 |
children | 31a1aca3305c |
line wrap: on
line source
package jetbrains.buildServer.buildTriggers.vcs.mercurial; import jetbrains.buildServer.vcs.CheckoutRules; import jetbrains.buildServer.vcs.VcsRoot; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import java.io.File; import static com.intellij.openapi.util.io.FileUtil.delete; import static jetbrains.buildServer.buildTriggers.vcs.mercurial.MercurialSupportBuilder.mercurialSupport; import static jetbrains.buildServer.buildTriggers.vcs.mercurial.Util.buildPatch; import static jetbrains.buildServer.buildTriggers.vcs.mercurial.Util.copyRepository; import static jetbrains.buildServer.buildTriggers.vcs.mercurial.VcsRootBuilder.vcsRoot; @Test public class SubrepoPatchTest extends BaseMercurialPatchTestCase { private MercurialVcsSupport myVcs; private File myRemoteRepo1; private File myRemoteRepo2; private File myRemoteRepo3; private ServerPluginConfig myPluginConfig; private VcsRoot myRoot; @BeforeMethod public void setUp() throws Exception { super.setUp(); File remoteRepoParentDir = myTempFiles.createTempDir(); myRemoteRepo1 = new File(remoteRepoParentDir, "r1"); myRemoteRepo2 = new File(remoteRepoParentDir, "r2"); myRemoteRepo3 = new File(remoteRepoParentDir, "r3"); copyRepository(new File("mercurial-tests/testData/subrepos/r1"), myRemoteRepo1); copyRepository(new File("mercurial-tests/testData/subrepos/r2"), myRemoteRepo2); copyRepository(new File("mercurial-tests/testData/subrepos/r3"), myRemoteRepo3); myPluginConfig = new ServerPluginConfigBuilder() .cachesDir(myTempFiles.createTempDir()) .detectSubrepoChanges(true) .build(); myVcs = mercurialSupport().withConfig(myPluginConfig).build(); myRoot = vcsRoot().withUrl(myRemoteRepo1.getAbsolutePath()).withSubrepoChanges(true).build(); } @Override protected String getTestDataPath() { return "mercurial-tests/testData"; } public void clean_patch_should_use_subrepo_clones_on_the_server() throws Exception { //this makes plugin to clone r1 and its subrepos myVcs.getCollectChangesPolicy().collectChanges(myRoot, "e4eced2b7381", "d64d9799c143", CheckoutRules.DEFAULT); //delete remote subrepo to make sure patch is build from the clone on the server delete(myRemoteRepo3); setName("clean_patch_with_subrepositories"); checkPatchResult(buildPatch(myVcs, myRoot, null, "d350e7209906", CheckoutRules.DEFAULT).toByteArray()); } public void clean_patch_should_use_subrepo_clones_on_the_server_recursive_case() throws Exception { //this makes plugin to clone r1 and its subrepos myVcs.getCollectChangesPolicy().collectChanges(myRoot, "e4eced2b7381", "d64d9799c143", CheckoutRules.DEFAULT); //delete remote subrepos to make sure patch is build from the clone on the server delete(myRemoteRepo2); delete(myRemoteRepo3); setName("clean_patch_recursive_subrepos"); checkPatchResult(buildPatch(myVcs, myRoot, null, "d64d9799c143", CheckoutRules.DEFAULT).toByteArray()); } public void incremental_patch_subrepo_revision_changed() throws Exception { setName("inc_patch_subrepo_revision_changed"); checkPatchResult(buildPatch(myVcs, myRoot, "d350e7209906", "09c256b6163e", CheckoutRules.DEFAULT).toByteArray()); } public void incremental_patch_subrepo_added() throws Exception { setName("inc_patch_subrepo_added"); checkPatchResult(buildPatch(myVcs, myRoot, "4d7b3db8779f", "d350e7209906", CheckoutRules.DEFAULT).toByteArray()); } public void incremental_patch_subrepo_removed() throws Exception { setName("inc_patch_subrepo_removed"); checkPatchResult(buildPatch(myVcs, myRoot, "34017377d9c3", "4d7b3db8779f", CheckoutRules.DEFAULT).toByteArray()); } public void incremental_patch_subrepo_url_changed() throws Exception { setName("inc_patch_subrepo_url_changed"); checkPatchResult(buildPatch(myVcs, myRoot, "34017377d9c3", "d64d9799c143", CheckoutRules.DEFAULT).toByteArray()); } public void incremental_patch_with_checkout_rules() throws Exception { setName("inc_patch_subrepo_with_checkout_rules"); checkPatchResult(buildPatch(myVcs, myRoot, "d350e7209906", "09c256b6163e", new CheckoutRules("+:.=>subdir")).toByteArray()); } public void incremental_patch_with_excluding_checkout_rules() throws Exception { setName("inc_patch_subrepo_with_excluding_checkout_rules"); checkPatchResult(buildPatch(myVcs, myRoot, "d350e7209906", "09c256b6163e", new CheckoutRules("+:.=>subdir\n-:r2")).toByteArray()); } }