annotate mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CloneCommandTest.java @ 893:1558f8257474

gather progress only if command reports it
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Fri, 07 Nov 2014 16:05:09 +0100
parents 31a1aca3305c
children 7bf4d943d5bb
rev   line source
732
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 493
diff changeset
1 /*
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 493
diff changeset
2 * Copyright 2000-2014 JetBrains s.r.o.
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 493
diff changeset
3 *
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 493
diff changeset
4 * Licensed under the Apache License, Version 2.0 (the "License");
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 493
diff changeset
5 * you may not use this file except in compliance with the License.
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 493
diff changeset
6 * You may obtain a copy of the License at
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 493
diff changeset
7 *
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 493
diff changeset
8 * http://www.apache.org/licenses/LICENSE-2.0
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 493
diff changeset
9 *
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 493
diff changeset
10 * Unless required by applicable law or agreed to in writing, software
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 493
diff changeset
11 * distributed under the License is distributed on an "AS IS" BASIS,
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 493
diff changeset
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 493
diff changeset
13 * See the License for the specific language governing permissions and
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 493
diff changeset
14 * limitations under the License.
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 493
diff changeset
15 */
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 493
diff changeset
16
207
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
17 package jetbrains.buildServer.buildTriggers.vcs.mercurial.command;
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
18
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
19 import jetbrains.buildServer.BaseTestCase;
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
20 import jetbrains.buildServer.TempFiles;
280
8c1fd2e565ae Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 207
diff changeset
21 import jetbrains.buildServer.buildTriggers.vcs.mercurial.*;
207
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
22 import jetbrains.buildServer.vcs.VcsException;
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
23 import jetbrains.buildServer.vcs.impl.VcsRootImpl;
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
24 import org.testng.annotations.AfterMethod;
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
25 import org.testng.annotations.BeforeMethod;
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
26 import org.testng.annotations.Test;
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
27
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
28 import java.io.File;
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
29 import java.io.IOException;
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
30
443
d0f80762461a Test refactoring: get rid of LocalRepositoryUtil
Dmitry Neverov <dmitry.neverov@gmail.com>
parents: 429
diff changeset
31 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.Util.copyRepository;
d0f80762461a Test refactoring: get rid of LocalRepositoryUtil
Dmitry Neverov <dmitry.neverov@gmail.com>
parents: 429
diff changeset
32
207
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
33 /**
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
34 * @author dmitry.neverov
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
35 */
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
36 @Test
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
37 public class CloneCommandTest extends BaseTestCase {
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
38
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
39 protected TempFiles myTempFiles;
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
40
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
41
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
42 @Override
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
43 @BeforeMethod
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
44 public void setUp() throws Exception {
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
45 myTempFiles = new TempFiles();
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
46 }
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
47
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
48
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
49 @AfterMethod
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
50 public void tearDown() throws Exception {
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
51 myTempFiles.cleanup();
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
52 }
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
53
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
54
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
55 public void clone_should_be_made_to_its_destination_dir() throws IOException, VcsException {
443
d0f80762461a Test refactoring: get rid of LocalRepositoryUtil
Dmitry Neverov <dmitry.neverov@gmail.com>
parents: 429
diff changeset
56 File repository = copyRepository(myTempFiles, new File("mercurial-tests/testData/rep1").getAbsolutePath());
207
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
57
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
58 VcsRootImpl root = new VcsRootImpl(1, "rootForTest");
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
59 root.addProperty(Constants.REPOSITORY_PROP, repository.getAbsolutePath());
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
60 root.addProperty(Constants.HG_COMMAND_PATH_PROP, Util.getHgPath());
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
61
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
62 File workingDir = myTempFiles.createTempDir();
309
33305b2022c2 Take caches and plugin data dirs from PluginConfig
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 280
diff changeset
63 ServerPluginConfig config = new ServerPluginConfigBuilder().cachesDir(myTempFiles.createTempDir()).build();
429
04eab204ba39 Remove HgVcsRoot's dependency on HgPathProvider
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 426
diff changeset
64 ServerHgPathProvider hgPathProvider = new ServerHgPathProvider(config);
04eab204ba39 Remove HgVcsRoot's dependency on HgPathProvider
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 426
diff changeset
65 HgVcsRoot hgRoot = new HgVcsRoot(root);
426
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 399
diff changeset
66 hgRoot.setCustomWorkingDir(workingDir);
207
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
67
493
236d0866a45f Make tests independent from mercurial settings on agent
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 480
diff changeset
68 new CloneCommand(new TestCommandSettingsFactory().create(), hgPathProvider.getHgPath(hgRoot), workingDir, hgRoot.getAuthSettings()).fromRepository(hgRoot.getRepository()).call();
207
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
69
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
70 String[] files = new String[] {".hg", "dir1", "dir with space", "file.txt"};
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
71 for (String f : files) {
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
72 assertTrue(new File(workingDir, f).exists());
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
73 }
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
74 }
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
75
3819be43aa8d Test we clone to the destination dir
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
76 }