Mercurial > hg > mercurial
annotate mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/VcsRootBuilder.java @ 536:fdb9ea7cb51e
Fix test
author | kir@kir-macpro.cz.labs.intellij.net |
---|---|
date | Tue, 29 Jan 2013 12:23:09 +0100 |
parents | 81fa236998d4 |
children | 4ff88460fb5d |
rev | line source |
---|---|
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
1 package jetbrains.buildServer.buildTriggers.vcs.mercurial; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
2 |
536 | 3 import java.io.File; |
4 import java.io.IOException; | |
356
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
5 import jetbrains.buildServer.vcs.SVcsRoot; |
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
6 import jetbrains.buildServer.vcs.impl.VcsRootImpl; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
7 import org.jetbrains.annotations.NotNull; |
356
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
8 import org.jmock.Expectations; |
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
9 import org.jmock.Mockery; |
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
10 |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
11 /** |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
12 * @author dmitry.neverov |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
13 */ |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
14 public class VcsRootBuilder { |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
15 |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
16 private String myRepository; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
17 private String myUsername; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
18 private String myPassword; |
276
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
275
diff
changeset
|
19 private String myBranch; |
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
20 private long myRootId = 1L; |
280
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
276
diff
changeset
|
21 private String myHgPath; |
371
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
356
diff
changeset
|
22 private String myUserForTag; |
502
2755266b7dd5
Use uncompressed transfer explicitly
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
371
diff
changeset
|
23 private boolean myUncompressed = true; |
531
81fa236998d4
TW-25057 custom clone dir should not contains password
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
502
diff
changeset
|
24 private File myCloneRepositoryTo; |
371
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
356
diff
changeset
|
25 |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
356
diff
changeset
|
26 public static VcsRootBuilder vcsRoot() { |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
356
diff
changeset
|
27 return new VcsRootBuilder(); |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
356
diff
changeset
|
28 } |
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
29 |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
30 public VcsRootImpl build() throws IOException { |
309
33305b2022c2
Take caches and plugin data dirs from PluginConfig
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
280
diff
changeset
|
31 VcsRootImpl vcsRoot = new VcsRootImpl(myRootId, Constants.VCS_NAME); |
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
32 vcsRoot.addProperty(Constants.REPOSITORY_PROP, myRepository); |
280
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
276
diff
changeset
|
33 vcsRoot.addProperty(Constants.HG_COMMAND_PATH_PROP, myHgPath != null ? myHgPath : Util.getHgPath()); |
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
34 vcsRoot.addProperty(Constants.USERNAME, myUsername); |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
35 vcsRoot.addProperty(Constants.PASSWORD, myPassword); |
276
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
275
diff
changeset
|
36 vcsRoot.addProperty(Constants.BRANCH_NAME_PROP, myBranch); |
371
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
356
diff
changeset
|
37 vcsRoot.addProperty(Constants.USER_FOR_TAG, myUserForTag); |
502
2755266b7dd5
Use uncompressed transfer explicitly
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
371
diff
changeset
|
38 vcsRoot.addProperty(Constants.UNCOMPRESSED_TRANSFER, String.valueOf(myUncompressed)); |
531
81fa236998d4
TW-25057 custom clone dir should not contains password
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
502
diff
changeset
|
39 if (myCloneRepositoryTo != null) |
81fa236998d4
TW-25057 custom clone dir should not contains password
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
502
diff
changeset
|
40 vcsRoot.addProperty(Constants.SERVER_CLONE_PATH_PROP, String.valueOf(myCloneRepositoryTo.getAbsolutePath())); |
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
41 return vcsRoot; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
42 } |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
43 |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
44 |
356
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
45 public SVcsRoot build(Mockery context) { |
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
46 final SVcsRoot root = context.mock(SVcsRoot.class, "SVcsRoot" + myRootId); |
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
47 context.checking(new Expectations() {{ |
536 | 48 allowing(root).describe(false); will(returnValue("toString")); |
356
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
49 allowing(root).getVcsName(); will(returnValue(Constants.VCS_NAME)); |
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
50 allowing(root).getProperty(with(Constants.REPOSITORY_PROP)); will(returnValue(myRepository)); |
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
51 allowing(root).getProperty(with(Constants.HG_COMMAND_PATH_PROP)); will(returnValue(myHgPath)); |
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
52 allowing(root).getProperty(with(Constants.BRANCH_NAME_PROP)); will(returnValue(myBranch)); |
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
53 allowing(root).getProperty(with(Constants.SERVER_CLONE_PATH_PROP)); will(returnValue(null)); |
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
54 allowing(root).getProperty(with(Constants.USERNAME)); will(returnValue(myUsername)); |
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
55 allowing(root).getProperty(with(Constants.PASSWORD)); will(returnValue(myPassword)); |
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
56 allowing(root).getProperty(with(Constants.UNCOMPRESSED_TRANSFER)); will(returnValue(null)); |
371
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
356
diff
changeset
|
57 allowing(root).getProperty(with(Constants.USER_FOR_TAG)); will(returnValue(myUserForTag)); |
356
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
58 }}); |
531
81fa236998d4
TW-25057 custom clone dir should not contains password
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
502
diff
changeset
|
59 if (myCloneRepositoryTo != null) { |
81fa236998d4
TW-25057 custom clone dir should not contains password
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
502
diff
changeset
|
60 context.checking(new Expectations() {{ |
81fa236998d4
TW-25057 custom clone dir should not contains password
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
502
diff
changeset
|
61 allowing(root).getProperty(with(Constants.SERVER_CLONE_PATH_PROP)); will(returnValue(myCloneRepositoryTo.getAbsolutePath())); |
81fa236998d4
TW-25057 custom clone dir should not contains password
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
502
diff
changeset
|
62 }}); |
81fa236998d4
TW-25057 custom clone dir should not contains password
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
502
diff
changeset
|
63 } |
356
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
64 return root; |
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
65 } |
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
66 |
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
67 |
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
68 public VcsRootBuilder withUrl(@NotNull String repository) { |
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
69 myRepository = repository; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
70 return this; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
71 } |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
72 |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
73 |
356
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
74 public VcsRootBuilder withUserName(@NotNull String username) { |
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
75 myUsername = username; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
76 return this; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
77 } |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
78 |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
79 |
356
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
80 public VcsRootBuilder withPassword(@NotNull String password) { |
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
81 myPassword = password; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
82 return this; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
83 } |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
84 |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
85 |
356
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
86 public VcsRootBuilder withBranch(@NotNull String branch) { |
276
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
275
diff
changeset
|
87 myBranch = branch; |
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
275
diff
changeset
|
88 return this; |
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
275
diff
changeset
|
89 } |
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
275
diff
changeset
|
90 |
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
275
diff
changeset
|
91 |
356
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
92 public VcsRootBuilder withId(long rootId) { |
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
93 myRootId = rootId; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
94 return this; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
95 } |
280
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
276
diff
changeset
|
96 |
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
276
diff
changeset
|
97 |
356
53b430731041
TW-19984 ensure map file cleaned as well
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
309
diff
changeset
|
98 public VcsRootBuilder withHgPath(String hgPath) { |
280
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
276
diff
changeset
|
99 myHgPath = hgPath; |
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
276
diff
changeset
|
100 return this; |
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
276
diff
changeset
|
101 } |
371
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
356
diff
changeset
|
102 |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
356
diff
changeset
|
103 |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
356
diff
changeset
|
104 public VcsRootBuilder withUserForTag(String username) { |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
356
diff
changeset
|
105 myUserForTag = username; |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
356
diff
changeset
|
106 return this; |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
356
diff
changeset
|
107 } |
531
81fa236998d4
TW-25057 custom clone dir should not contains password
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
502
diff
changeset
|
108 |
81fa236998d4
TW-25057 custom clone dir should not contains password
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
502
diff
changeset
|
109 |
81fa236998d4
TW-25057 custom clone dir should not contains password
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
502
diff
changeset
|
110 public VcsRootBuilder withCloneRepositoryTo(File cloneTo) { |
81fa236998d4
TW-25057 custom clone dir should not contains password
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
502
diff
changeset
|
111 myCloneRepositoryTo = cloneTo; |
81fa236998d4
TW-25057 custom clone dir should not contains password
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
502
diff
changeset
|
112 return this; |
81fa236998d4
TW-25057 custom clone dir should not contains password
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
502
diff
changeset
|
113 } |
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
114 } |