public String transform(String testName, String[] data) throws Exception {
   setSettings();
   String fileText = data[0];
   final PsiFile psiFile = TestUtils.createPseudoPhysicalScalaFile(myProject, fileText);
   String result = processFile(psiFile);
   Console.println("------------------------ " + testName + " ------------------------");
   Console.println(result);
   Console.println("");
   return result;
 }
  private String processFile(final PsiFile file)
      throws IncorrectOperationException, InvalidDataException, IOException {
    String result = "";
    String fileText = file.getText();
    int startOffset = fileText.indexOf(TestUtils.BEGIN_MARKER);
    if (startOffset < 0) {
      startOffset = fileText.indexOf(ALL_MARKER);
      replaceAllOccurences = true;
      fileText = removeAllMarker(fileText);
    } else {
      replaceAllOccurences = false;
      fileText = TestUtils.removeBeginMarker(fileText);
    }
    int endOffset = fileText.indexOf(TestUtils.END_MARKER);
    fileText = TestUtils.removeEndMarker(fileText);
    myFile = TestUtils.createPseudoPhysicalScalaFile(myProject, fileText);
    fileEditorManager = FileEditorManager.getInstance(myProject);
    myEditor =
        fileEditorManager.openTextEditor(
            new OpenFileDescriptor(myProject, myFile.getVirtualFile(), 0), false);

    try {

      String varName = "value";
      final ScType varType = null;

      ScalaVariableValidator validator =
          IntroduceVariableTestUtil.getValidator(
              myProject, myEditor, (ScalaFile) myFile, startOffset, endOffset);
      String[] res = validator.isOKImpl(varName, replaceAllOccurences);
      for (String s : res) result += s + "\n";
    } finally {
      fileEditorManager.closeFile(myFile.getVirtualFile());
      myEditor = null;
    }
    return result;
  }
 public String folderPath() {
   return TestUtils.getTestDataPath() + "/";
 }
 public String getTestDataPath() {
   return TestUtils.getTestDataPath() + "/resolve/";
 }
 protected final String baseRootPath() {
   return TestUtils.getTestDataPath() + "/";
 }
/** @author Alexander Podkhalyuzin */
public abstract class ScalaLightPlatformCodeInsightTestCaseAdapter
    extends LightPlatformCodeInsightTestCase {
  private String JDK_HOME = TestUtils.getMockJdk();
  private ScalaLibraryLoader myLibraryLoader = null;

  protected String rootPath() {
    return null;
  }

  protected final String baseRootPath() {
    return TestUtils.getTestDataPath() + "/";
  }

  protected VirtualFile getSourceRootAdapter() {
    return getSourceRoot();
  }

  @Override
  protected Sdk getProjectJDK() {
    return JavaSdk.getInstance().createJdk("java sdk", JDK_HOME, false);
  }

  protected TestUtils.ScalaSdkVersion getDefaultScalaSDKVersion() {
    return TestUtils.DEFAULT_SCALA_SDK_VERSION;
  }

  @Override
  protected void setUp() throws Exception {
    setUp(getDefaultScalaSDKVersion());
  }

  protected void setUp(TestUtils.ScalaSdkVersion libVersion) throws Exception {
    super.setUp();
    myLibraryLoader =
        new ScalaLibraryLoader(
            getProject(),
            getModule(),
            rootPath(),
            isIncludeScalazLibrary(),
            isIncludeReflectLibrary());
    myLibraryLoader.loadLibrary(libVersion);
    // libLoader.clean();
  }

  protected boolean isIncludeReflectLibrary() {
    return false;
  }

  protected boolean isIncludeScalazLibrary() {
    return false;
  }

  protected VirtualFile getVFileAdapter() {
    return getVFile();
  }

  protected Editor getEditorAdapter() {
    return getEditor();
  }

  protected Project getProjectAdapter() {
    return getProject();
  }

  protected Module getModuleAdapter() {
    return getModule();
  }

  protected PsiFile getFileAdapter() {
    return getFile();
  }

  protected PsiManager getPsiManagerAdapter() {
    return getPsiManager();
  }

  protected DataContext getCurrentEditorDataContextAdapter() {
    return getCurrentEditorDataContext();
  }

  protected void executeActionAdapter(String actionId) {
    executeAction(actionId);
  }

  protected void configureFromFileTextAdapter(
      @NonNls final String fileName, @NonNls final String fileText) throws IOException {
    configureFromFileText(fileName, fileText);
  }

  @Override
  protected void tearDown() throws Exception {

    myLibraryLoader.clean();
    myLibraryLoader = null;
    super.tearDown();
    if (rootPath() != null) {
      new WriteAction<Object>() {
        @Override
        protected void run(Result<Object> objectResult) throws Throwable {
          closeAndDeleteProject();
        }
      }.execute().throwException();
    }
  }
}