Mercurial > hg > mercurial
annotate mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCommitSupportTest.java @ 916:40124b503933
Merge branch Hajipur-9.0.x
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Fri, 02 Jan 2015 12:37:50 +0100 |
parents | 15fce0c26e18 |
children | 06ecc863293a |
rev | line source |
---|---|
867
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
1 /* |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
2 * Copyright 2000-2014 JetBrains s.r.o. |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
3 * |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
4 * Licensed under the Apache License, Version 2.0 (the "License"); |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
5 * you may not use this file except in compliance with the License. |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
6 * You may obtain a copy of the License at |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
7 * |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
8 * http://www.apache.org/licenses/LICENSE-2.0 |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
9 * |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
10 * Unless required by applicable law or agreed to in writing, software |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
11 * distributed under the License is distributed on an "AS IS" BASIS, |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
13 * See the License for the specific language governing permissions and |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
14 * limitations under the License. |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
15 */ |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
16 |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
17 package jetbrains.buildServer.buildTriggers.vcs.mercurial; |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
18 |
911
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
19 import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.AuthSettings; |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
20 import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.TestCommandSettingsFactory; |
908
b39494a5ff96
TW-39095 handle commit messages with non-ascii symbols
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
903
diff
changeset
|
21 import jetbrains.buildServer.util.TestFor; |
867
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
22 import jetbrains.buildServer.vcs.*; |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
23 import org.jetbrains.annotations.NotNull; |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
24 import org.testng.annotations.BeforeMethod; |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
25 import org.testng.annotations.Test; |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
26 |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
27 import java.io.ByteArrayInputStream; |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
28 import java.io.File; |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
29 import java.io.InputStream; |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
30 import java.util.List; |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
31 |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
32 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.MercurialSupportBuilder.mercurialSupport; |
911
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
33 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.Util.getHgPath; |
867
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
34 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.VcsChangeMatcher.vcsChange; |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
35 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.VcsRootBuilder.vcsRoot; |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
36 import static org.hamcrest.MatcherAssert.assertThat; |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
37 import static org.hamcrest.Matchers.hasItem; |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
38 import static org.testng.AssertJUnit.assertEquals; |
911
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
39 import static org.testng.AssertJUnit.assertNotNull; |
867
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
40 |
868 | 41 @RequiredHgVersion(min = "1.7.0") |
42 @Test(dataProviderClass = HgVersionConstraint.class, dataProvider = "installedHgVersion") | |
867
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
43 public class MercurialCommitSupportTest extends BaseMercurialTestCase { |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
44 |
911
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
45 private ServerPluginConfig myPluginConfig; |
867
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
46 private MercurialVcsSupport myVcs; |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
47 private MercurialCommitSupport myCommitSupport; |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
48 private File myRepo; |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
49 |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
50 @Override |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
51 @BeforeMethod |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
52 public void setUp() throws Exception { |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
53 super.setUp(); |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
54 |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
55 myRepo = createRepo("mercurial-tests/testData/commit"); |
911
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
56 myPluginConfig = new ServerPluginConfigBuilder() |
867
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
57 .cachesDir(myTempFiles.createTempDir()) |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
58 .build(); |
911
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
59 MercurialSupportBuilder mercurialBuilder = mercurialSupport().withConfig(myPluginConfig); |
867
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
60 myVcs = mercurialBuilder.build(); |
911
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
61 myCommitSupport = new MercurialCommitSupport(myVcs, myVcs.getMirrorManager(), myPluginConfig, |
867
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
62 mercurialBuilder.getHgRootFactory(), mercurialBuilder.getHgRepoFactory()); |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
63 } |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
64 |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
65 |
868 | 66 public void test_commit(@NotNull HgVersion _) throws Exception { |
867
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
67 VcsRoot root = vcsRoot().withUrl(myRepo).build(); |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
68 RepositoryStateData beforeCommit = myVcs.getCollectChangesPolicy().getCurrentState(root); |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
69 |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
70 String description = "Test commit support"; |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
71 String author = "Joe Doe <joe@some.org>"; |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
72 CommitPatchBuilder patchBuilder = myCommitSupport.getCommitPatchBuilder(root); |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
73 patchBuilder.deleteDirectory("dir"); |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
74 patchBuilder.deleteFile("x"); |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
75 patchBuilder.createFile("a/b/c", stream("test")); |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
76 patchBuilder.renameFile("y", "z", stream("rename")); |
903
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
77 CommitResult result = patchBuilder.commit(new CommitSettingsImpl(author, description)); |
902
657882ca2b34
implement CommitPatchBuilder.dispose()
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
888
diff
changeset
|
78 patchBuilder.dispose(); |
867
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
79 |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
80 RepositoryStateData afterCommit = myVcs.getCollectChangesPolicy().getCurrentState(root); |
888
207c4ec46d54
CommitSupport: return CommitResult instead of revision
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
868
diff
changeset
|
81 assertEquals(result.getCreatedRevision(), afterCommit.getBranchRevisions().get(afterCommit.getDefaultBranchName())); |
867
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
82 |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
83 List<ModificationData> changes = myVcs.getCollectChangesPolicy().collectChanges(root, beforeCommit, afterCommit, CheckoutRules.DEFAULT); |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
84 ModificationData m = changes.get(0); |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
85 assertEquals(description, m.getDescription()); |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
86 assertEquals(author, m.getUserName()); |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
87 |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
88 assertThat(m.getChanges(), hasItem(vcsChange().file("x").type(VcsChangeInfo.Type.REMOVED))); |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
89 assertThat(m.getChanges(), hasItem(vcsChange().file("dir/x").type(VcsChangeInfo.Type.REMOVED))); |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
90 assertThat(m.getChanges(), hasItem(vcsChange().file("a/b/c").type(VcsChangeInfo.Type.ADDED))); |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
91 assertThat(m.getChanges(), hasItem(vcsChange().file("y").type(VcsChangeInfo.Type.REMOVED))); |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
92 assertThat(m.getChanges(), hasItem(vcsChange().file("z").type(VcsChangeInfo.Type.ADDED))); |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
93 } |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
94 |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
95 |
908
b39494a5ff96
TW-39095 handle commit messages with non-ascii symbols
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
903
diff
changeset
|
96 @TestFor(issues = "TW-39095") |
b39494a5ff96
TW-39095 handle commit messages with non-ascii symbols
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
903
diff
changeset
|
97 public void commit_with_non_ascii_commit_message(@NotNull HgVersion _) throws Exception { |
b39494a5ff96
TW-39095 handle commit messages with non-ascii symbols
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
903
diff
changeset
|
98 VcsRoot root = vcsRoot().withUrl(myRepo).build(); |
b39494a5ff96
TW-39095 handle commit messages with non-ascii symbols
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
903
diff
changeset
|
99 String description = "Комит месадж"; |
b39494a5ff96
TW-39095 handle commit messages with non-ascii symbols
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
903
diff
changeset
|
100 String author = "Joe Doe <joe@some.org>"; |
b39494a5ff96
TW-39095 handle commit messages with non-ascii symbols
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
903
diff
changeset
|
101 CommitPatchBuilder patchBuilder = myCommitSupport.getCommitPatchBuilder(root); |
b39494a5ff96
TW-39095 handle commit messages with non-ascii symbols
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
903
diff
changeset
|
102 patchBuilder.createFile("a/b/c", stream("test")); |
b39494a5ff96
TW-39095 handle commit messages with non-ascii symbols
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
903
diff
changeset
|
103 patchBuilder.commit(new CommitSettingsImpl(author, description)); |
b39494a5ff96
TW-39095 handle commit messages with non-ascii symbols
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
903
diff
changeset
|
104 patchBuilder.dispose(); |
b39494a5ff96
TW-39095 handle commit messages with non-ascii symbols
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
903
diff
changeset
|
105 } |
b39494a5ff96
TW-39095 handle commit messages with non-ascii symbols
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
903
diff
changeset
|
106 |
b39494a5ff96
TW-39095 handle commit messages with non-ascii symbols
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
903
diff
changeset
|
107 |
910
26de7a765875
TW-39321 better error message when commit destination branch doesn't exist
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
908
diff
changeset
|
108 @TestFor(issues = "TW-39321") |
26de7a765875
TW-39321 better error message when commit destination branch doesn't exist
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
908
diff
changeset
|
109 public void should_throw_meaningful_error_if_destination_branch_doesnt_exist(@NotNull HgVersion _) throws Exception { |
26de7a765875
TW-39321 better error message when commit destination branch doesn't exist
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
908
diff
changeset
|
110 String nonExistingBranch = "nonExisting"; |
26de7a765875
TW-39321 better error message when commit destination branch doesn't exist
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
908
diff
changeset
|
111 VcsRoot root = vcsRoot().withUrl(myRepo).withBranch(nonExistingBranch).build(); |
26de7a765875
TW-39321 better error message when commit destination branch doesn't exist
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
908
diff
changeset
|
112 String description = "msg"; |
26de7a765875
TW-39321 better error message when commit destination branch doesn't exist
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
908
diff
changeset
|
113 String author = "Joe Doe <joe@some.org>"; |
26de7a765875
TW-39321 better error message when commit destination branch doesn't exist
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
908
diff
changeset
|
114 try { |
26de7a765875
TW-39321 better error message when commit destination branch doesn't exist
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
908
diff
changeset
|
115 CommitPatchBuilder patchBuilder = myCommitSupport.getCommitPatchBuilder(root); |
26de7a765875
TW-39321 better error message when commit destination branch doesn't exist
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
908
diff
changeset
|
116 patchBuilder.createFile("a/b/c", stream("test")); |
26de7a765875
TW-39321 better error message when commit destination branch doesn't exist
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
908
diff
changeset
|
117 patchBuilder.commit(new CommitSettingsImpl(author, description)); |
26de7a765875
TW-39321 better error message when commit destination branch doesn't exist
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
908
diff
changeset
|
118 patchBuilder.dispose(); |
26de7a765875
TW-39321 better error message when commit destination branch doesn't exist
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
908
diff
changeset
|
119 } catch (VcsException e) { |
26de7a765875
TW-39321 better error message when commit destination branch doesn't exist
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
908
diff
changeset
|
120 assertEquals("The '" + nonExistingBranch + "' destination branch doesn't exist", e.getMessage()); |
26de7a765875
TW-39321 better error message when commit destination branch doesn't exist
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
908
diff
changeset
|
121 } |
26de7a765875
TW-39321 better error message when commit destination branch doesn't exist
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
908
diff
changeset
|
122 } |
26de7a765875
TW-39321 better error message when commit destination branch doesn't exist
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
908
diff
changeset
|
123 |
26de7a765875
TW-39321 better error message when commit destination branch doesn't exist
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
908
diff
changeset
|
124 |
911
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
125 @TestFor(issues = "TW-39321") |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
126 public void should_create_branch_if_repository_has_no_branches(@NotNull HgVersion _) throws Exception { |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
127 File emptyRemoteRepo = myTempFiles.createTempDir(); |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
128 ServerHgRepo repo = new ServerHgRepo(new TestCommandSettingsFactory(), myPluginConfig, emptyRemoteRepo, getHgPath(), new AuthSettings()); |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
129 repo.init().call(); |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
130 |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
131 String nonExistingBranch = "nonExisting"; |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
132 VcsRoot root = vcsRoot().withUrl(emptyRemoteRepo).withBranch(nonExistingBranch).build(); |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
133 String description = "msg"; |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
134 String author = "Joe Doe <joe@some.org>"; |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
135 CommitPatchBuilder patchBuilder = myCommitSupport.getCommitPatchBuilder(root); |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
136 patchBuilder.createFile("a/b/c", stream("test")); |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
137 patchBuilder.commit(new CommitSettingsImpl(author, description)); |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
138 patchBuilder.dispose(); |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
139 |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
140 RepositoryStateData state = myVcs.getCollectChangesPolicy().getCurrentState(root); |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
141 assertNotNull(state.getBranchRevisions().get(nonExistingBranch)); |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
142 } |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
143 |
15fce0c26e18
TW-39321 create branch for commit if repository has no branches
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
910
diff
changeset
|
144 |
867
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
145 @NotNull |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
146 private InputStream stream(@NotNull String content) { |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
147 return new ByteArrayInputStream(content.getBytes()); |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
148 } |
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
149 |
903
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
150 private class CommitSettingsImpl implements CommitSettings { |
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
151 private final String myUserName; |
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
152 private final String myDescription; |
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
153 |
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
154 public CommitSettingsImpl(@NotNull String userName, @NotNull String description) { |
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
155 myUserName = userName; |
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
156 myDescription = description; |
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
157 } |
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
158 |
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
159 @NotNull |
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
160 public String getUserName() { |
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
161 return myUserName; |
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
162 } |
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
163 |
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
164 @NotNull |
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
165 public String getDescription() { |
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
166 return myDescription; |
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
167 } |
ecce3d4fb90b
Implement new API
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
902
diff
changeset
|
168 } |
867
80d695d15cc0
Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
169 } |