view mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CloneCommandTest.java @ 1124:a14a2f7e74d8 development/2024.03.x tip

2024.03.x branch is created
author Nadia Burnasheva <nadezhda.burnasheva@jetbrains.com>
date Thu, 15 Feb 2024 11:33:35 +0100
parents 7bf4d943d5bb
children
line wrap: on
line source
/*
 * Copyright 2000-2018 JetBrains s.r.o.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package jetbrains.buildServer.buildTriggers.vcs.mercurial.command;

import jetbrains.buildServer.BaseTestCase;
import jetbrains.buildServer.TempFiles;
import jetbrains.buildServer.buildTriggers.vcs.mercurial.*;
import jetbrains.buildServer.vcs.VcsException;
import jetbrains.buildServer.vcs.impl.VcsRootImpl;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import java.io.File;
import java.io.IOException;

import static jetbrains.buildServer.buildTriggers.vcs.mercurial.Util.copyRepository;

/**
 * @author dmitry.neverov
 */
@Test
public class CloneCommandTest extends BaseTestCase {

  protected TempFiles myTempFiles;


  @Override
  @BeforeMethod
  public void setUp() throws Exception {
    myTempFiles = new TempFiles();
  }


  @AfterMethod
  public void tearDown() throws Exception {
    myTempFiles.cleanup();
  }


  public void clone_should_be_made_to_its_destination_dir() throws IOException, VcsException {
    File repository = copyRepository(myTempFiles, new File("mercurial-tests/testData/rep1").getAbsolutePath());

    VcsRootImpl root = new VcsRootImpl(1, "rootForTest");
    root.addProperty(Constants.REPOSITORY_PROP, repository.getAbsolutePath());
    root.addProperty(Constants.HG_COMMAND_PATH_PROP, Util.getHgPath());

    File workingDir = myTempFiles.createTempDir();
    ServerPluginConfig config = new ServerPluginConfigBuilder().cachesDir(myTempFiles.createTempDir()).build();
    ServerHgPathProvider hgPathProvider = new ServerHgPathProvider(config);
    HgVcsRoot hgRoot = new HgVcsRoot(root);
    hgRoot.setCustomWorkingDir(workingDir);

    new CloneCommand(new TestCommandSettingsFactory().create(), hgPathProvider.getHgPath(hgRoot), workingDir, hgRoot.getAuthSettings()).fromRepository(hgRoot.getRepository()).call();

    String[] files = new String[] {".hg", "dir1", "dir with space", "file.txt"};
    for (String f : files) {
      assertTrue(new File(workingDir, f).exists());
    }
  }

}