package org.netbeans.gradle.project.api.entry; import org.junit.Before; import org.junit.ClassRule; import org.junit.Test; import org.junit.rules.RuleChain; import org.junit.rules.TestRule; import org.junit.runner.Description; import org.junit.runners.model.Statement; import org.netbeans.api.project.Project; import org.netbeans.gradle.model.GenericModelFetcher; import org.netbeans.gradle.project.NbGradleProject; import org.netbeans.gradle.project.java.query.GradleClassPathProvider; import static org.junit.Assert.*; public class Latin2ProjectTest { private static final SampleProjectRule PROJECT_REF = SampleProjectRule.getStandardRule("latin2-project.zip"); private static final String MODEL_FETCHER_PREFIX; static { // Contains all non-ascii Hungarian characters String floodTolerantMirrorDrill = "\u00E1rv\u00EDzt\u0171r\u0151t\u00FCk\u00F6rf\u00FAr\u00F3g\u00E9p"; // Starting with lower case "u" will expand to the unicode escape on Windows. // So when this test is run on Windows, it will test this as well. MODEL_FETCHER_PREFIX = "u-nb-m-input-" + floodTolerantMirrorDrill; } @ClassRule public static final TestRule RULE = RuleChain.emptyRuleChain() .around(PROJECT_REF) .around(new ModelFetcherPrefixRule(MODEL_FETCHER_PREFIX)); private NbGradleProject rootProject; @Before public void setUp() throws Exception { rootProject = PROJECT_REF.loadAndWaitSingleProject(); } private static boolean isJavaExtensionActive(Project project) { GradleClassPathProvider javaCpProvider = project.getLookup().lookup(GradleClassPathProvider.class); return javaCpProvider != null; } @Test public void testHasLoadedJavaExtension() throws Exception { assertTrue("Java extension must be enabled for " + rootProject.getName(), isJavaExtensionActive(rootProject)); } private static final class ModelFetcherPrefixRule implements TestRule { private final String prefix; public ModelFetcherPrefixRule(String prefix) { this.prefix = prefix; } @Override public Statement apply(final Statement base, Description description) { return new Statement() { @Override public void evaluate() throws Throwable { try { GenericModelFetcher.setModelInputPrefix(prefix); base.evaluate(); } finally { GenericModelFetcher.setDefaultPrefixes(); } } }; } } }