Mercurial > hg > mercurial
view mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/HgVersionConstraint.java @ 888:207c4ec46d54
CommitSupport: return CommitResult instead of revision
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Mon, 03 Nov 2014 12:53:47 +0100 |
parents | 31a1aca3305c |
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; import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.TestCommandSettingsFactory; import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.VersionCommand; import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.exception.ParseHgVersionException; import org.jetbrains.annotations.NotNull; import org.testng.annotations.DataProvider; import java.io.File; import java.lang.reflect.Method; public class HgVersionConstraint { @DataProvider public static Object[][] installedHgVersion(Method testMethod) throws Exception { HgVersion actualVersion = getHgVersion(); RequiredHgVersion constaint = testMethod.getAnnotation(RequiredHgVersion.class); if (constaint == null) constaint = testMethod.getDeclaringClass().getAnnotation(RequiredHgVersion.class); if (constaint == null) return new Object[][] { new Object[] { actualVersion }}; HgVersion requiredMinVersion = parse(constaint.min()); if (!actualVersion.isEqualsOrGreaterThan(requiredMinVersion)) return new Object[0][]; return new Object[][] { new Object[] { actualVersion }}; } private static HgVersion getHgVersion() throws Exception { VersionCommand versionCommand = new VersionCommand(new TestCommandSettingsFactory().create(), Util.getHgPath(), new File("..")); return versionCommand.call(); } private static HgVersion parse(@NotNull String version) throws ParseHgVersionException { return HgVersion.parse("Mercurial Distributed SCM (version " + version); } }