| /** |
| * Copyright (c) 2008, 2009 Borland Software Corp. |
| * |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Alexander Shatalin (Borland) - initial API and implementation |
| */ |
| package org.eclipse.gmf.tests.xpand.migration; |
| |
| import java.io.IOException; |
| import java.io.InputStreamReader; |
| import java.io.Reader; |
| import java.nio.charset.Charset; |
| |
| import junit.framework.TestCase; |
| |
| import org.eclipse.gmf.internal.xpand.migration.MigrationException; |
| import org.eclipse.gmf.internal.xpand.migration.MigrationExecutionContextImpl; |
| import org.eclipse.gmf.internal.xpand.migration.XpandMigrationFacade; |
| import org.eclipse.gmf.internal.xpand.model.XpandResource; |
| import org.eclipse.gmf.tests.xpand.TestsResourceManager; |
| import org.eclipse.gmf.tests.xpand.migration.testModel.MigrationTestsPackage; |
| |
| public class XpandMigrationTest extends TestCase { |
| |
| private TestsResourceManager testResourceManager; |
| |
| @Override |
| protected void setUp() throws Exception { |
| super.setUp(); |
| testResourceManager = new TestsResourceManager(); |
| } |
| |
| public void testDefinition() throws IOException, MigrationException { |
| checkMigration("Definition"); |
| } |
| |
| public void testDefinitionParameters() throws IOException, MigrationException { |
| checkMigration("DefinitionParameters"); |
| } |
| |
| public void testStdlibExtension() throws IOException, MigrationException { |
| checkMigration("StdlibExtension"); |
| } |
| |
| public void testStdlibExtension_withoutOtherExtensions() throws IOException, MigrationException { |
| checkMigration("StdlibExtension_withoutOtherExtensions"); |
| } |
| |
| public void testStdlibExtension_withOtherExtensions() throws IOException, MigrationException { |
| checkMigration("StdlibExtension_withOtherExtensions"); |
| } |
| |
| public void testExpressionStatements() throws IOException, MigrationException { |
| checkMigration("ExpressionStatements"); |
| } |
| |
| public void testErrorStatements() throws IOException, MigrationException { |
| checkMigration("ErrorStatements"); |
| } |
| |
| public void testExpandStatements() throws IOException, MigrationException { |
| checkMigration("ExpandStatements"); |
| } |
| |
| public void testFileStatements() throws IOException, MigrationException { |
| checkMigration("FileStatements"); |
| } |
| |
| public void testForEachStatements() throws IOException, MigrationException { |
| checkMigration("ForEachStatements"); |
| } |
| |
| public void testIfStatements() throws IOException, MigrationException { |
| checkMigration("IfStatements"); |
| } |
| |
| public void testLetStatements() throws IOException, MigrationException { |
| checkMigration("LetStatements"); |
| } |
| |
| public void testFixedProblems() throws IOException, MigrationException { |
| String resourceName = "FixedProblems"; |
| checkMigration(new XpandMigrationFacade(testResourceManager, getResourceName(resourceName), new MigrationExecutionContextImpl(testResourceManager, MigrationTestsPackage.eINSTANCE)), resourceName); |
| } |
| |
| public void testImportedExtensions() throws IOException, MigrationException { |
| checkMigration("ImportedExtensions"); |
| } |
| |
| public void testImportedExtensionsWReexport() throws IOException, MigrationException { |
| checkMigration("ImportedExtensionsWReexport"); |
| } |
| |
| private String checkMigration(XpandMigrationFacade facade, String resourceName) throws IOException, MigrationException { |
| String content = facade.migrateXpandResource().toString(); |
| assertTrue(content.length() > 0); |
| |
| StringBuilder etalon = new StringBuilder(); |
| Reader reader = new InputStreamReader(testResourceManager.loadFile(getEtalonResourceName(resourceName), XpandResource.TEMPLATE_EXTENSION), Charset.forName("ISO-8859-1")); |
| for (int ch = reader.read(); ch != -1; ch = reader.read()) { |
| etalon.append((char) ch); |
| } |
| assertEquals(etalon.toString(), content); |
| return content; |
| } |
| |
| |
| private String checkMigration(String resourceName) throws IOException, MigrationException { |
| return checkMigration(new XpandMigrationFacade(testResourceManager, getResourceName(resourceName)), resourceName); |
| } |
| |
| private static String getEtalonResourceName(String resourceName) { |
| return getResourceName(resourceName) + "_etalon"; |
| } |
| |
| private static String getResourceName(String resourceName) { |
| return "org::eclipse::gmf::tests::xpand::migration::xpand::" + resourceName; |
| } |
| |
| } |