view mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/IdentifyCommandTest.java @ 429:04eab204ba39

Remove HgVcsRoot's dependency on HgPathProvider
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Fri, 11 May 2012 16:37:00 +0400
parents c91c4f1ebd53
children efba721f9a1d
line wrap: on
line source
package jetbrains.buildServer.buildTriggers.vcs.mercurial.command;

import jetbrains.buildServer.buildTriggers.vcs.mercurial.HgPathProvider;
import jetbrains.buildServer.vcs.VcsException;
import org.jetbrains.annotations.NotNull;
import org.testng.annotations.Test;

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

/**
 * @author dmitry.neverov
 */
@Test
public class IdentifyCommandTest extends BaseCommandTestCase {

  public void should_throw_exception_if_cset_is_not_present() throws IOException {
    setRepository("mercurial-tests/testData/rep1", true);
    String nonExistingVersion = "1d446e82d355";
    try {
      runIdentify(new ChangeSet(nonExistingVersion));
      fail("Should throw exception for non-existing change set");
    } catch (VcsException e) {
      assertTrue(true);
    }
  }

  public void should_not_throw_exception_if_cset_is_present() throws IOException {
    setRepository("mercurial-tests/testData/rep1", true);
    String nonExistingVersion = "1d446e82d356";
    try {
      runIdentify(new ChangeSet(nonExistingVersion));
    } catch (VcsException e) {
      fail("Should not throw an exception if change set is present");
    }
  }

  private Void runIdentify(final ChangeSet cset) throws IOException, VcsException {
    return runCommand(new CommandExecutor<Void>() {
      public Void execute(@NotNull HgVcsRoot root, @NotNull HgPathProvider hgPathProvider, @NotNull File workingDir) throws VcsException {
        new IdentifyCommand(hgPathProvider.getHgPath(root), workingDir, root.getAuthSettings())
                .revision(cset)
                .inLocalRepository()
                .call();
        return null;
      }
    });
  }
}