Package org.jetbrains.plugins.clojure.compiler

Source Code of org.jetbrains.plugins.clojure.compiler.ClojureCompilerTest

package org.jetbrains.plugins.clojure.compiler;

import com.intellij.testFramework.CompilerTester;
import com.intellij.testFramework.PsiTestUtil;
import com.intellij.testFramework.builders.JavaModuleFixtureBuilder;
import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase;
import org.jetbrains.plugins.clojure.util.TestUtils;

import java.io.File;

/**
* @author peter
*/
public class ClojureCompilerTest extends JavaCodeInsightFixtureTestCase {
  private CompilerTester myTester;

  @Override
  public void setUp() throws Exception {
    super.setUp();
    myTester = new CompilerTester(myModule);
    ClojureCompilerSettings.getInstance(getProject()).getState().COMPILE_CLOJURE = true;
    File jar = new File(TestUtils.getMockClojureLib());
    PsiTestUtil.addLibrary(myModule, "clojure", jar.getParent(), jar.getName());
   
  }

  @Override
  protected void tuneFixture(JavaModuleFixtureBuilder moduleBuilder) throws Exception {
    moduleBuilder.setMockJdkLevel(JavaModuleFixtureBuilder.MockJdkLevel.jdk15);
    super.tuneFixture(moduleBuilder);
  }

  public void testCompileClass() {
    myFixture.addClass("class Foo {}");
    myFixture.addFileToProject("hello.clj", "(ns hello (:gen-class))\n" +
        "(defn -main [arg]  (println (str \"Hello!\")))");
    assertEmpty(myTester.make());
    assertNotNull(myTester.findClassFile("hello", myModule));
  }

  public void testDontCompileNoGenClass() {
    myFixture.addClass("class Foo {}");
    myFixture.addFileToProject("hello.clj", "(ns hello)\n" +
        "(defn -main [arg]  (println (str \"Hello!\")))");
    assertEmpty(myTester.make());
    assertNull(myTester.findClassFile("hello__init", myModule));
  }

  @Override
  protected void tearDown() throws Exception {
    com.intellij.util.ui.UIUtil.invokeAndWaitIfNeeded(new Runnable() {
      public void run() {
        myTester.tearDown();
        try {
          ClojureCompilerTest.super.tearDown();
        } catch (Exception e) {
          throw new RuntimeException(e);
        }
      }
    });
  }
}
TOP

Related Classes of org.jetbrains.plugins.clojure.compiler.ClojureCompilerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.