add converted result compilation test

This commit is contained in:
Mikhail Mutcianko
2014-07-14 14:55:28 +04:00
committed by Yan Zhulanow
parent 1e8769b5f7
commit 31dc8194f1
6 changed files with 55 additions and 2 deletions
@@ -0,0 +1,13 @@
class R {
class id {
class object {
val item_detail_container = 0
val textView1 = 0
val password = 0
val textView2 = 0
val passwordConfirmation = 0
val login = 0
}
}
}
@@ -0,0 +1,6 @@
package android.app
import android.view.View
trait Activity {
fun findViewById(id: Int): View?
}
@@ -0,0 +1,3 @@
package android.view
class View
@@ -1,7 +1,12 @@
package org.jetbrains.jet.codegen;
import com.intellij.openapi.util.Disposer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.ConfigurationKind;
import org.jetbrains.jet.JetTestCaseBuilder;
import org.jetbrains.jet.JetTestUtils;
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.android.AndroidUIXmlParser;
import org.jetbrains.jet.test.TestCaseWithTmpdir;
@@ -9,9 +14,15 @@ import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class AndroidXmlTest extends TestCaseWithTmpdir {
private final File singleFile = new File(getTestDataPath() + "/converter/singleFile/layout.xml");
private final File fakeActivity = new File(getTestDataPath() + "/fakeHelpers/Activity.kt");
private final File fakeView = new File(getTestDataPath() + "/fakeHelpers/View.kt");
@Override
public void setUp() throws Exception {
super.setUp();
@@ -36,13 +47,33 @@ public class AndroidXmlTest extends TestCaseWithTmpdir {
}
}
public void testCompileResult() throws Exception {
ArrayList<File> paths = new ArrayList<File>();
paths.add(singleFile);
String text = new AndroidUIXmlParser(null, paths).parse();
JetCoreEnvironment jetCoreEnvironment = JetTestUtils.createEnvironmentWithMockJdkAndIdeaAnnotations(getTestRootDisposable(),
ConfigurationKind.ALL);
JetFile psiFile = JetTestUtils.createFile(singleFile.getName(), text, jetCoreEnvironment.getProject());
JetFile fakeActivityClass = JetTestUtils.loadJetFile(jetCoreEnvironment.getProject(), fakeActivity);
JetFile fakeViewClass = JetTestUtils.loadJetFile(jetCoreEnvironment.getProject(), fakeView);
JetFile fakeRClass = JetTestUtils.loadJetFile(jetCoreEnvironment.getProject(),
new File(getTestDataPath() + "/converter/singleFile/R.kt"));
List<JetFile> files = new ArrayList<JetFile>();
files.add(psiFile);
files.add(fakeActivityClass);
files.add(fakeViewClass);
files.add(fakeRClass);
GenerationUtils.compileManyFilesGetGenerationStateForTest(jetCoreEnvironment.getProject(), files);
Disposer.dispose(getTestRootDisposable());
}
public void testConverterOneFile() throws Exception {
ArrayList<File> paths = new ArrayList<File>();
paths.add(new File(getTestDataPath() + "/layout.xml"));
paths.add(singleFile);
AndroidUIXmlParser parser = new AndroidUIXmlParser(null, paths);
String actual = parser.parse();
String expected = loadOrCreate(new File(getTestDataPath() + "/layout.kt"), actual);
String expected = loadOrCreate(new File(getTestDataPath() + "/converter/singleFile/layout.kt"), actual);
assertEquals(expected, actual);
}