/** * Copyright (c) 2005 IBM Corporation and others. * 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: * IBM - Initial API and implementation */ package org.eclipse.emf.test.tools.importer; import java.util.HashSet; import java.util.Set; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EcoreFactory; import org.eclipse.emf.importer.ModelImporter; public class ModelImporterTest extends TestCase { /** * @param name */ public ModelImporterTest(String name) { super(name); } public static Test suite() { TestSuite ts = new TestSuite("ModelImporterTest"); ts.addTest(new ModelImporterTest("testMakeEcoreFileNamesUnique")); return ts; } /* * Bugzilla 96608 */ public void testMakeEcoreFileNamesUnique() throws Exception { class MyModelImporter extends ModelImporter { @Override public String getID() { return null; } } MyModelImporter myModelImporter = new MyModelImporter(); EPackage ePackage1 = EcoreFactory.eINSTANCE.createEPackage(); ModelImporter.EPackageImportInfo ePackageInfo1 = myModelImporter.getEPackageImportInfo(ePackage1); ePackageInfo1.setEcoreFileName("package.ecore"); ePackageInfo1.setBasePackage("basePackage"); EPackage ePackage2 = EcoreFactory.eINSTANCE.createEPackage(); ModelImporter.EPackageImportInfo ePackageInfo2 = myModelImporter.getEPackageImportInfo(ePackage2); ePackageInfo2.setEcoreFileName("package.ecore"); ePackageInfo2.setBasePackage("basePackage"); EPackage ePackage3 = EcoreFactory.eINSTANCE.createEPackage(); ModelImporter.EPackageImportInfo ePackageInfo3 = myModelImporter.getEPackageImportInfo(ePackage3); ePackageInfo3.setEcoreFileName("package.ecore"); ePackageInfo3.setBasePackage("basePackage3"); EPackage ePackage4 = EcoreFactory.eINSTANCE.createEPackage(); ModelImporter.EPackageImportInfo ePackageInfo4 = myModelImporter.getEPackageImportInfo(ePackage4); ePackageInfo4.setEcoreFileName("package1.ecore"); ePackageInfo4.setBasePackage("basePackage"); EPackage ePackage5 = EcoreFactory.eINSTANCE.createEPackage(); ModelImporter.EPackageImportInfo ePackageInfo5 = myModelImporter.getEPackageImportInfo(ePackage5); ePackageInfo5.setEcoreFileName("package1.ecore"); ePackageInfo5.setBasePackage("basePackage5"); EPackage ePackage6 = EcoreFactory.eINSTANCE.createEPackage(); ModelImporter.EPackageImportInfo ePackageInfo6 = myModelImporter.getEPackageImportInfo(ePackage6); ePackageInfo6.setEcoreFileName("package2.ecore"); ePackageInfo6.setBasePackage("basePackage6"); myModelImporter.makeEPackageConvertDataUnique(); Set<String> names = new HashSet<String>(); names.add("package.ecore"); names.add("package1.ecore"); names.add("package2.ecore"); names.add("package3.ecore"); names.add("package4.ecore"); names.add("package11.ecore"); String name = myModelImporter.getEPackageImportInfo(ePackage1).getEcoreFileName(); assertTrue("Name: " + name, "package.ecore".equals(name) || "package3.ecore".equals(name) || "package4.ecore".equals(name)); names.remove(name); name = myModelImporter.getEPackageImportInfo(ePackage2).getEcoreFileName(); assertTrue("Name: " + name, "package.ecore".equals(name) || "package3.ecore".equals(name) || "package4.ecore".equals(name)); names.remove(name); name = myModelImporter.getEPackageImportInfo(ePackage3).getEcoreFileName(); assertTrue("Name: " + name, "package.ecore".equals(name) || "package3.ecore".equals(name) || "package4.ecore".equals(name)); names.remove(name); name = myModelImporter.getEPackageImportInfo(ePackage4).getEcoreFileName(); assertTrue("Name: " + name, "package1.ecore".equals(name) || "package11.ecore".equals(name)); names.remove(name); name = myModelImporter.getEPackageImportInfo(ePackage5).getEcoreFileName(); assertTrue("Name: " + name, "package1.ecore".equals(name) || "package11.ecore".equals(name)); names.remove(name); name = myModelImporter.getEPackageImportInfo(ePackage6).getEcoreFileName(); assertEquals("Name: " + name, "package2.ecore", name); names.remove(name); assertTrue(names.isEmpty()); } }