view mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/IdentifyCommandTest.java @ 732:31a1aca3305c

Update copyright
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Tue, 14 Jan 2014 12:45:10 +0100
parents 236d0866a45f
children 7bf4d943d5bb
line wrap: on
line source
/*
 * Copyright 2000-2014 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.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(new TestCommandSettingsFactory().create(), hgPathProvider.getHgPath(root), workingDir, root.getAuthSettings())
                .revision(cset)
                .inLocalRepository()
                .call();
        return null;
      }
    });
  }
}