Mercurial > hg > mercurial
view mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialModificationInfoBuilderTest.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 | dd11376b5f4a |
children | 5164285ece2b |
line wrap: on
line source
package jetbrains.buildServer.buildTriggers.vcs.mercurial; import jetbrains.buildServer.vcs.ChangesConsumer; import jetbrains.buildServer.vcs.CheckoutRules; import jetbrains.buildServer.vcs.VcsRoot; import jetbrains.vcs.api.ChangeData; import org.jetbrains.annotations.NotNull; import org.testng.Assert; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import static jetbrains.buildServer.buildTriggers.vcs.mercurial.MercurialSupportBuilder.mercurialSupport; import static jetbrains.buildServer.buildTriggers.vcs.mercurial.ServerPluginConfigBuilder.serverPluginConfig; import static jetbrains.buildServer.buildTriggers.vcs.mercurial.VcsRootBuilder.vcsRoot; import static org.testng.AssertJUnit.assertEquals; @RequiredHgVersion(min = "1.7.0") @Test(dataProviderClass = HgVersionConstraint.class, dataProvider = "installedHgVersion") public class MercurialModificationInfoBuilderTest extends BaseMercurialTestCase { private File myRemoteRepository; private MercurialModificationInfoBuilder myModInfoBuilder; @BeforeMethod public void setUp() throws Exception { super.setUp(); ServerPluginConfig config = serverPluginConfig() .cachesDir(myTempFiles.createTempDir()) .hgPath(Util.getHgPath()) .build(); myRemoteRepository = myTempFiles.createTempDir(); Util.copyRepository(new File("mercurial-tests/testData/rep2"), myRemoteRepository); MercurialSupportBuilder hgBuilder = mercurialSupport().withConfig(config); MercurialVcsSupport vcs = hgBuilder.build(); myModInfoBuilder = new MercurialModificationInfoBuilder(vcs, hgBuilder.getHgRootFactory(), hgBuilder.getHgRepoFactory(), hgBuilder.getHgPathProvider()); } public void should_return_commits_for_every_revision_in_state(HgVersion _) throws Exception { VcsRoot root = vcsRoot().withUrl(myRemoteRepository.getAbsolutePath()).build(); final List<ChangeData> changes = new ArrayList<ChangeData>(); myModInfoBuilder.fetchChangesInfo(root, CheckoutRules.DEFAULT, Arrays.asList("505c5b9d01e6", "9ec402c74298"), new ChangesConsumer() { public void consumeChange(@NotNull ChangeData change) { changes.add(change); } }); for (ChangeData change : changes) { if (change.getVersion().equals("505c5b9d01e6")) { Assert.assertEquals(change.getParentRevisions(), Arrays.asList("78e67807f916")); } else if (change.getVersion().equals("9ec402c74298")) { Assert.assertEquals(change.getParentRevisions(), Arrays.asList("96b78d73081d")); } else { Assert.fail("Unexpected revision: " + change.getVersion()); } } assertEquals(2, changes.size()); } public void should_return_commits_for_every_revision_in_state_parent_child(HgVersion _) throws Exception { VcsRoot root = vcsRoot().withUrl(myRemoteRepository.getAbsolutePath()).build(); final List<ChangeData> changes = new ArrayList<ChangeData>(); myModInfoBuilder.fetchChangesInfo(root, CheckoutRules.DEFAULT, Arrays.asList("505c5b9d01e6", "9ec402c74298", "96b78d73081d"), new ChangesConsumer() { public void consumeChange(@NotNull ChangeData change) { changes.add(change); } }); for (ChangeData change : changes) { if (change.getVersion().equals("505c5b9d01e6")) { Assert.assertEquals(change.getParentRevisions(), Arrays.asList("78e67807f916")); } else if (change.getVersion().equals("9ec402c74298")) { Assert.assertEquals(change.getParentRevisions(), Arrays.asList("96b78d73081d")); } else if (change.getVersion().equals("96b78d73081d")) { Assert.assertEquals(change.getParentRevisions(), Arrays.asList("dec47d2d49bf")); } else { Assert.fail("Unexpected revision: " + change.getVersion()); } } assertEquals(3, changes.size()); } public void should_return_commits_for_every_revision_in_state_parent_gap_child(HgVersion _) throws Exception { VcsRoot root = vcsRoot().withUrl(myRemoteRepository.getAbsolutePath()).build(); final List<ChangeData> changes = new ArrayList<ChangeData>(); myModInfoBuilder.fetchChangesInfo(root, CheckoutRules.DEFAULT, Arrays.asList("505c5b9d01e6", "9ec402c74298", "dec47d2d49bf"), new ChangesConsumer() { public void consumeChange(@NotNull ChangeData change) { changes.add(change); } }); for (ChangeData change : changes) { if (change.getVersion().equals("505c5b9d01e6")) { Assert.assertEquals(change.getParentRevisions(), Arrays.asList("78e67807f916")); } else if (change.getVersion().equals("9ec402c74298")) { Assert.assertEquals(change.getParentRevisions(), Arrays.asList("96b78d73081d")); } else if (change.getVersion().equals("dec47d2d49bf")) { Assert.assertEquals(change.getParentRevisions(), Arrays.asList("1e620196c4b6")); } else { Assert.fail("Unexpected revision: " + change.getVersion()); } } assertEquals(3, changes.size()); } }