package jetbrains.mps.migration.test.tests; /*Generated by MPS */ import junit.framework.TestCase; import jetbrains.mps.project.AbstractModule; import jetbrains.mps.project.structure.modules.ModuleDescriptor; import java.util.Set; import org.jetbrains.mps.openapi.language.SLanguage; import org.jetbrains.mps.openapi.module.SModule; import java.util.Map; import jetbrains.mps.project.structure.modules.ModuleReference; import jetbrains.mps.project.ModuleId; import jetbrains.mps.internal.collections.runtime.MapSequence; import jetbrains.mps.internal.collections.runtime.IVisitor; import jetbrains.mps.internal.collections.runtime.IMapping; import org.jetbrains.mps.openapi.module.SDependency; import jetbrains.mps.internal.collections.runtime.Sequence; import jetbrains.mps.internal.collections.runtime.ISelector; import jetbrains.mps.module.SDependencyImpl; import org.jetbrains.mps.openapi.module.SDependencyScope; import jetbrains.mps.lang.migration.runtime.base.MigrationScriptBase; import jetbrains.mps.lang.migration.runtime.base.MigrationScriptReference; import org.jetbrains.mps.openapi.model.SNode; public class Migrations_Test extends TestCase { /*package*/ static class MockModule extends AbstractModule { private ModuleDescriptor myModuleDescriptor; private Set<SLanguage> myUsedLanguages; private Iterable<SModule> myDependencies; public MockModule(String name, Map<SLanguage, Integer> usedLanguages, Iterable<SModule> dependencies) { setModuleReference(new ModuleReference(name, ModuleId.foreign(name))); myModuleDescriptor = new ModuleDescriptor(); myUsedLanguages = MapSequence.fromMap(usedLanguages).keySet(); myDependencies = dependencies; MapSequence.fromMap(usedLanguages).visitAll(new IVisitor<IMapping<SLanguage, Integer>>() { public void visit(IMapping<SLanguage, Integer> it) { myModuleDescriptor.getLanguageVersions().put(it.key(), it.value()); } }); } public ModuleDescriptor getModuleDescriptor() { return myModuleDescriptor; } public Set<SLanguage> getAllUsedLanguages() { return myUsedLanguages; } public Iterable<SDependency> getDeclaredDependencies() { return Sequence.fromIterable(myDependencies).select(new ISelector<SModule, SDependency>() { public SDependency select(final SModule it) { return (SDependency) new SDependencyImpl(it, SDependencyScope.DEFAULT, false); } }); } } /*package*/ static class MockMigrationScript extends MigrationScriptBase { private MigrationScriptReference myReference; public MockMigrationScript(SLanguage lang, int version) { myReference = new MigrationScriptReference(lang, version); } public MigrationScriptReference getReference() { return myReference; } public SNode execute(SModule moduleToMigrate) { return null; } public String getCaption() { return "'script " + myReference.getFromVersion() + " in language " + myReference.getLanguage() + "'"; } } }