blob: 342cf445da05ffe15ffa6141db6d99ea4706a65f [file] [log] [blame]
package org.eclipse.emf.edapt.tests.migration;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EPackage.Registry;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.edapt.common.IResourceSetFactory;
import org.eclipse.emf.edapt.internal.common.URIUtils;
import org.eclipse.emf.edapt.internal.migration.internal.PrintStreamProgressMonitor;
import org.eclipse.emf.edapt.migration.MigrationException;
import org.eclipse.emf.edapt.migration.execution.Migrator;
import org.eclipse.emf.edapt.spi.history.Release;
import junit.framework.Assert;
import junit.framework.TestCase;
/**
* Test for ensuring that the configuration of the custom serialization has
* effect on the migration.
*
* @author herrmi
* @author $Author: hummelb $
* @version $Rev: 18709 $
* @levd.rating RED Rev:
*/
@SuppressWarnings({ "deprecation", "restriction" })
public class CustomSerializationTest extends TestCase {
/** Test that the custom serialization works as configured. */
public void testCustomSerialization() throws MigrationException {
final Migrator migrator = new Migrator(
URIUtils.getURI("data/node/node2.history"), null); //$NON-NLS-1$
final List<URI> modelURIs = Arrays.asList(URIUtils
.getURI("data/node/Graph1.xmi")); //$NON-NLS-1$
final Release sourceRelease = migrator.getRelease(0);
final Release targetRelease = migrator.getRelease(1);
final PrintStreamProgressMonitor monitor = new PrintStreamProgressMonitor(
System.out);
final EPackage metamodel = migrator.getMetamodel(targetRelease)
.getEPackages().get(0);
Registry.INSTANCE.put(metamodel.getNsURI(), metamodel);
// without custom serialization
ResourceSet resourceSet = migrator.migrateAndLoad(modelURIs,
sourceRelease, targetRelease, monitor);
Assert.assertEquals(1, resourceSet.getResources().size());
// with custom serialization
migrator.setResourceSetFactory(new IResourceSetFactory() {
@Override
public ResourceSet createResourceSet() {
final ResourceSet resourceSet = new ResourceSetImpl();
final Map<URI, URI> uriMap = resourceSet.getURIConverter()
.getURIMap();
uriMap.put(
URI.createURI("urn:app:com.emc.xcp.application:Graph2"), //$NON-NLS-1$
URIUtils.getURI("data/node/Graph2.xmi")); //$NON-NLS-1$
return resourceSet;
}
});
resourceSet = migrator.migrateAndLoad(modelURIs, sourceRelease,
targetRelease, monitor);
Assert.assertEquals(2, resourceSet.getResources().size());
}
}