package jetbrains.mps.migration.test.tests;
/*Generated by MPS */
import junit.framework.TestCase;
import jetbrains.mps.project.Project;
import junit.framework.Assert;
import jetbrains.mps.ide.project.ProjectHelper;
import jetbrains.mps.ide.migration.MigrationManager;
import jetbrains.mps.baseLanguage.closures.runtime.Wrappers;
import java.util.List;
import org.jetbrains.mps.openapi.language.SProperty;
import org.jetbrains.mps.openapi.model.SNode;
import org.jetbrains.mps.openapi.module.SModule;
import jetbrains.mps.project.Solution;
import jetbrains.mps.internal.collections.runtime.Sequence;
import org.jetbrains.mps.openapi.model.SModel;
import jetbrains.mps.internal.collections.runtime.ListSequence;
import java.util.ArrayList;
import jetbrains.mps.internal.collections.runtime.ISelector;
import jetbrains.mps.tool.environment.Environment;
import jetbrains.mps.tool.environment.IdeaEnvironment;
import java.io.File;
import jetbrains.mps.tool.environment.EnvironmentConfig;
public class MigrationAssistant_Test extends TestCase {
private static final String MIGRATION_ASSISTANT_PLUGIN = "jetbrains.mps.ide.migration.assistant";
private static final String PROJECT_PATH = "testbench/modules/migrationAssistant";
private Project project;
public void test_test() throws Exception {
Assert.assertFalse(ProjectHelper.toIdeaProject(project).getComponent(MigrationManager.class).isMigrationRequired());
final Wrappers._T<List<SProperty>> properties = new Wrappers._T<List<SProperty>>();
final Wrappers._T<SNode> root = new Wrappers._T<SNode>();
project.getRepository().getModelAccess().runReadAction(new Runnable() {
public void run() {
Iterable<SModule> modules = project.getProjectModules();
Solution migratingSolution = Sequence.fromIterable(modules).ofType(Solution.class).first();
SModel migratingModel = migratingSolution.getModels().get(0);
root.value = migratingModel.getRootNodes().iterator().next();
properties.value = ListSequence.fromList(ListSequence.fromListWithValues(new ArrayList<SProperty>(), root.value.getProperties())).sort(new ISelector<SProperty, String>() {
public String select(SProperty it) {
return it.getName();
}
}, false).toListSequence();
}
});
Assert.assertEquals(2, ListSequence.fromList(properties.value).count());
final Wrappers._T<String> value0 = new Wrappers._T<String>();
final Wrappers._T<String> value1 = new Wrappers._T<String>();
project.getRepository().getModelAccess().runReadAction(new Runnable() {
public void run() {
value0.value = root.value.getProperty(ListSequence.fromList(properties.value).getElement(0));
value1.value = root.value.getProperty(ListSequence.fromList(properties.value).getElement(1));
}
});
Assert.assertEquals("value", ListSequence.fromList(properties.value).getElement(0).getName());
Assert.assertEquals("239", value0.value);
Assert.assertEquals("newvalue", ListSequence.fromList(properties.value).getElement(1).getName());
Assert.assertEquals("239", value1.value);
}
public void setUp() {
Environment env = IdeaEnvironment.getOrCreate(createConfig());
project = env.openProject(new File(PROJECT_PATH));
}
private EnvironmentConfig createConfig() {
return EnvironmentConfig.defaultConfig().addPlugin("migrationAssistant", MIGRATION_ASSISTANT_PLUGIN);
}
}