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); } }