diff --git a/plugins/gradle/testSources/org/jetbrains/plugins/gradle/VersionMatcherRule.java b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/VersionMatcherRule.java new file mode 100644 index 000000000000..e2552b071685 --- /dev/null +++ b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/VersionMatcherRule.java @@ -0,0 +1,55 @@ +/* + * 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 org.jetbrains.plugins.gradle; + +import org.gradle.util.GradleVersion; +import org.hamcrest.CoreMatchers; +import org.hamcrest.CustomMatcher; +import org.hamcrest.Matcher; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.plugins.gradle.tooling.annotation.TargetVersions; +import org.jetbrains.plugins.gradle.tooling.util.VersionMatcher; +import org.junit.rules.TestWatcher; +import org.junit.runner.Description; + +/** +* @author Vladislav.Soroka +* @since 11/27/2014 +*/ +public class VersionMatcherRule extends TestWatcher { + + @Nullable + private CustomMatcher myMatcher; + + @NotNull + public Matcher getMatcher() { + return myMatcher != null ? myMatcher : CoreMatchers.anything(); + } + + @Override + protected void starting(Description d) { + final TargetVersions targetVersions = d.getAnnotation(TargetVersions.class); + if (targetVersions == null) return; + + myMatcher = new CustomMatcher("Gradle version '" + targetVersions.value() + "'") { + @Override + public boolean matches(Object item) { + return item instanceof String && new VersionMatcher(GradleVersion.version(item.toString())).isVersionMatch(targetVersions); + } + }; + } +} diff --git a/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleImportingTestCase.java b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleImportingTestCase.java index 034dcedda347..2ca987e8ebef 100644 --- a/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleImportingTestCase.java +++ b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleImportingTestCase.java @@ -29,23 +29,16 @@ import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import org.gradle.util.GradleVersion; import org.gradle.wrapper.GradleWrapperMain; -import org.hamcrest.CoreMatchers; -import org.hamcrest.CustomMatcher; -import org.hamcrest.Matcher; import org.intellij.lang.annotations.Language; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jetbrains.plugins.gradle.VersionMatcherRule; import org.jetbrains.plugins.gradle.settings.DistributionType; import org.jetbrains.plugins.gradle.settings.GradleProjectSettings; import org.jetbrains.plugins.gradle.settings.GradleSettings; -import org.jetbrains.plugins.gradle.tooling.annotation.TargetVersions; -import org.jetbrains.plugins.gradle.tooling.util.VersionMatcher; import org.jetbrains.plugins.gradle.util.GradleConstants; import org.junit.Rule; import org.junit.rules.TestName; -import org.junit.rules.TestWatcher; -import org.junit.runner.Description; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @@ -182,28 +175,4 @@ public abstract class GradleImportingTestCase extends ExternalSystemImportingTes } return new File(location.getPath()); } - - private static class VersionMatcherRule extends TestWatcher { - - @Nullable - private CustomMatcher myMatcher; - - @NotNull - public Matcher getMatcher() { - return myMatcher != null ? myMatcher : CoreMatchers.anything(); - } - - @Override - protected void starting(Description d) { - final TargetVersions targetVersions = d.getAnnotation(TargetVersions.class); - if (targetVersions == null) return; - - myMatcher = new CustomMatcher("Gradle version '" + targetVersions.value() + "'") { - @Override - public boolean matches(Object item) { - return item instanceof String && new VersionMatcher(GradleVersion.version(item.toString())).isVersionMatch(targetVersions); - } - }; - } - } } diff --git a/plugins/gradle/tooling-extension-impl/testSources/org/jetbrains/plugins/gradle/tooling/builder/AbstractModelBuilderTest.java b/plugins/gradle/tooling-extension-impl/testSources/org/jetbrains/plugins/gradle/tooling/builder/AbstractModelBuilderTest.java index 7a2e28d9cb9a..4ed63cd009ac 100644 --- a/plugins/gradle/tooling-extension-impl/testSources/org/jetbrains/plugins/gradle/tooling/builder/AbstractModelBuilderTest.java +++ b/plugins/gradle/tooling-extension-impl/testSources/org/jetbrains/plugins/gradle/tooling/builder/AbstractModelBuilderTest.java @@ -29,6 +29,7 @@ import org.gradle.tooling.model.DomainObjectSet; import org.gradle.tooling.model.idea.IdeaModule; import org.gradle.util.GradleVersion; import org.jetbrains.annotations.NotNull; +import org.jetbrains.plugins.gradle.VersionMatcherRule; import org.jetbrains.plugins.gradle.model.BuildScriptClasspathModel; import org.jetbrains.plugins.gradle.model.ClasspathEntryModel; import org.jetbrains.plugins.gradle.model.ProjectImportAction; @@ -52,6 +53,7 @@ import java.util.regex.Pattern; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static org.junit.Assume.assumeThat; /** * @author Vladislav.Soroka @@ -70,11 +72,12 @@ public abstract class AbstractModelBuilderTest { private static File ourTempDir; @NotNull - private final String gradleVersion; + protected final String gradleVersion; protected File testDir; protected ProjectImportAction.AllModels allModels; @Rule public TestName name = new TestName(); + @Rule public VersionMatcherRule versionMatcherRule = new VersionMatcherRule(); public AbstractModelBuilderTest(@NotNull String gradleVersion) { this.gradleVersion = gradleVersion; @@ -88,6 +91,8 @@ public abstract class AbstractModelBuilderTest { @Before public void setUp() throws Exception { + assumeThat(gradleVersion, versionMatcherRule.getMatcher()); + ensureTempDirCreated(); String methodName = name.getMethodName();