annotate mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/TagsTest.java @ 650:919418bf09a1

Fix tests: testData requires hg 1.7
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Fri, 27 Sep 2013 12:02:28 +0400
parents 0b50d7952a7d
children 31a1aca3305c
rev   line source
649
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
1 package jetbrains.buildServer.buildTriggers.vcs.mercurial;
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
2
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
3 import jetbrains.buildServer.vcs.RepositoryStateData;
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
4 import jetbrains.buildServer.vcs.VcsRoot;
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
5 import org.testng.annotations.BeforeMethod;
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
6 import org.testng.annotations.Test;
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
7
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
8 import java.io.File;
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
9 import java.io.IOException;
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
10
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
11 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.BookmarksTest.RepositoryStateDataMatcher.hasBranch;
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
12 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.BookmarksTest.RepositoryStateDataMatcher.hasNoBranch;
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
13 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.MercurialSupportBuilder.mercurialSupport;
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
14 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.ServerPluginConfigBuilder.serverPluginConfig;
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
15 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.VcsRootBuilder.vcsRoot;
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
16 import static org.hamcrest.MatcherAssert.assertThat;
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
17 import static org.hamcrest.Matchers.not;
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
18
650
919418bf09a1 Fix tests: testData requires hg 1.7
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 649
diff changeset
19 @RequiredHgVersion(min = "1.7.0")
919418bf09a1 Fix tests: testData requires hg 1.7
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 649
diff changeset
20 @Test(dataProviderClass = HgVersionConstraint.class, dataProvider = "installedHgVersion")
649
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
21 public class TagsTest extends BaseMercurialTestCase {
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
22
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
23 private File myRemoteRepository;
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
24 private ServerPluginConfigBuilder myConfig;
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
25
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
26 @BeforeMethod
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
27 public void setUp() throws Exception {
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
28 super.setUp();
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
29 myConfig = serverPluginConfig()
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
30 .cachesDir(myTempFiles.createTempDir())
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
31 .hgPath(Util.getHgPath());
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
32
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
33 myRemoteRepository = myTempFiles.createTempDir();
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
34 Util.copyRepository(new File("mercurial-tests/testData/tags"), myRemoteRepository);
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
35 }
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
36
650
919418bf09a1 Fix tests: testData requires hg 1.7
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 649
diff changeset
37 public void no_tags_reported_by_default(HgVersion _) throws Exception {
649
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
38 VcsRoot root = vcsRoot().withUrl(myRemoteRepository.getAbsolutePath()).build();
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
39 RepositoryStateData state = getVcs().getCollectChangesPolicy().getCurrentState(root);
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
40 assertThat(state, not(hasBranch("v1").withRevision("fa7ad5b80a88")));
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
41 assertThat(state, not(hasBranch("v4").withRevision("f7fbcc489e40")));
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
42 }
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
43
650
919418bf09a1 Fix tests: testData requires hg 1.7
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 649
diff changeset
44 public void should_report_tag_revisions(HgVersion _) throws Exception {
649
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
45 VcsRoot root = vcsRoot().withUrl(myRemoteRepository.getAbsolutePath()).withTagsEnabled(true).build();
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
46 RepositoryStateData state = getVcs().getCollectChangesPolicy().getCurrentState(root);
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
47 assertThat(state, hasBranch("v1").withRevision("fa7ad5b80a88"));
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
48 assertThat(state, hasBranch("v4").withRevision("f7fbcc489e40"));
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
49 }
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
50
650
919418bf09a1 Fix tests: testData requires hg 1.7
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 649
diff changeset
51 public void branch_has_higher_precedence_over_tag(HgVersion _) throws Exception {
649
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
52 VcsRoot root = vcsRoot().withUrl(myRemoteRepository.getAbsolutePath()).withTagsEnabled(true).build();
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
53 RepositoryStateData state = getVcs().getCollectChangesPolicy().getCurrentState(root);
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
54 assertThat(state, hasBranch("topic").withRevision("efde33cd0b66"));
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
55 }
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
56
650
919418bf09a1 Fix tests: testData requires hg 1.7
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 649
diff changeset
57 public void tags_can_be_turned_off_globally(HgVersion _) throws Exception {
649
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
58 myConfig.withTagsAsBranches(false);
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
59 VcsRoot root = vcsRoot().withUrl(myRemoteRepository.getAbsolutePath()).withTagsEnabled(true).build();
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
60 RepositoryStateData state = getVcs().getCollectChangesPolicy().getCurrentState(root);
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
61 assertThat(state, not(hasBranch("v1").withRevision("fa7ad5b80a88")));
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
62 assertThat(state, not(hasBranch("v4").withRevision("f7fbcc489e40")));
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
63 }
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
64
650
919418bf09a1 Fix tests: testData requires hg 1.7
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 649
diff changeset
65 public void tags_should_not_include_tip(HgVersion _) throws Exception {
649
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
66 VcsRoot root = vcsRoot().withUrl(myRemoteRepository.getAbsolutePath()).withTagsEnabled(true).build();
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
67 RepositoryStateData state = getVcs().getCollectChangesPolicy().getCurrentState(root);
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
68 assertThat(state, hasNoBranch("tip"));
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
69 }
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
70
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
71 private MercurialVcsSupport getVcs() throws IOException {
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
72 return mercurialSupport().withConfig(myConfig.build()).build();
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
73 }
0b50d7952a7d TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
74 }