Mercurial > hg > mercurial
view mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/SubrepoChangesTest.java @ 511:f2666e817701
Detect changes in subrepos
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Thu, 15 Nov 2012 16:40:22 +0400 |
parents | |
children | 1533dd8058b8 |
line wrap: on
line source
package jetbrains.buildServer.buildTriggers.vcs.mercurial; import com.intellij.openapi.diagnostic.Logger; import jetbrains.buildServer.TempFiles; import jetbrains.buildServer.log.Log4jFactory; import jetbrains.buildServer.vcs.CheckoutRules; import jetbrains.buildServer.vcs.ModificationData; import jetbrains.buildServer.vcs.VcsRoot; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import java.io.File; import java.io.IOException; import java.util.List; import static jetbrains.buildServer.buildTriggers.vcs.mercurial.MercurialSupportBuilder.mercurialSupport; import static jetbrains.buildServer.buildTriggers.vcs.mercurial.Util.copyRepository; import static jetbrains.buildServer.buildTriggers.vcs.mercurial.VcsRootBuilder.vcsRoot; import static org.testng.AssertJUnit.assertEquals; @Test public class SubrepoChangesTest { static { Logger.setFactory(new Log4jFactory()); } private TempFiles myTempFiles; private MercurialVcsSupport myVcs; private File myRemoteRepo1; private File myRemoteRepo2; private File myRemoteRepo3; @BeforeMethod public void setUp() throws IOException { myTempFiles = new TempFiles(); ServerPluginConfig pluginConfig = new ServerPluginConfigBuilder() .cachesDir(myTempFiles.createTempDir()) .detectSubrepoChanges(true) .build(); 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); myVcs = mercurialSupport().withConfig(pluginConfig).build(); } @AfterMethod public void tearDown() { myTempFiles.cleanup(); } public void should_report_changes_from_subrepos() throws Exception { VcsRoot root = vcsRoot().withUrl(myRemoteRepo1.getAbsolutePath()).build(); List<ModificationData> changes = myVcs.collectChanges(root, "d350e7209906", "09c256b6163e", CheckoutRules.DEFAULT); assertEquals(3, changes.size()); } public void should_not_report_any_changes_when_subrepo_removed() throws Exception { VcsRoot root = vcsRoot().withUrl(myRemoteRepo1.getAbsolutePath()).build(); List<ModificationData> changes = myVcs.collectChanges(root, "34017377d9c3", "4d7b3db8779f", CheckoutRules.DEFAULT); assertEquals(1, changes.size()); } public void should_not_report_any_changes_when_subrepo_added() throws Exception { VcsRoot root = vcsRoot().withUrl(myRemoteRepo1.getAbsolutePath()).build(); List<ModificationData> changes = myVcs.collectChanges(root, "4d7b3db8779f", "d350e7209906", CheckoutRules.DEFAULT); assertEquals(1, changes.size()); } public void should_report_subrepo_changes_recursevly() throws Exception { VcsRoot root = vcsRoot().withUrl(myRemoteRepo1.getAbsolutePath()).build(); List<ModificationData> changes = myVcs.collectChanges(root, "09c256b6163e", "d64d9799c143", CheckoutRules.DEFAULT); assertEquals(5, changes.size()); } }