/**
* <copyright>
*
* Copyright (c) 2010 Springsite BV (The Netherlands) 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:
* Martin Taal - Initial API and implementation
*
* </copyright>
*
* $Id: TestSubpackage.java,v 1.2 2011/08/25 12:42:19 mtaal Exp $
*/
package org.eclipse.emf.texo.test;
import junit.framework.TestCase;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.texo.test.model.issues.subpackage.MainModelPackage;
import org.eclipse.emf.texo.test.model.issues.subpackage.sub1.Sub1ModelPackage;
import org.eclipse.emf.texo.test.model.issues.subpackage.sub2.Sub2ModelPackage;
/**
* Tests that sub and parent packages are registered correctly.
*
* @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
* @version $Revision: 1.2 $
*/
public class TestSubpackage extends TestCase {
public void testSameEModelElementInstances() {
final Sub1ModelPackage sub1ModelPackage = Sub1ModelPackage.INSTANCE;
final Sub2ModelPackage sub2ModelPackage = Sub2ModelPackage.INSTANCE;
final MainModelPackage mainModelPackage = MainModelPackage.INSTANCE;
// test same epackage
final EPackage sub1EPackage = mainModelPackage.getEPackage().getESubpackages().get(0);
final EPackage sub2EPackage = mainModelPackage.getEPackage().getESubpackages().get(1);
assertSame(sub1ModelPackage.getEPackage(), sub1EPackage);
assertSame(sub2ModelPackage.getEPackage(), sub2EPackage);
// test same eclass
assertSame(sub1ModelPackage.getSub1TypeEClass(), sub1EPackage.getEClassifiers().get(0));
assertSame(sub2ModelPackage.getSub2TypeEClass(), sub2EPackage.getEClassifiers().get(0));
assertSame(mainModelPackage.getEPackage().getEClassifiers().get(0), mainModelPackage.getMainTypeEClass());
// test same eattribute
// note that the model generation adds the Identifiable super EClass which adds
// 2 eattributes, therefore name is the third
assertSame(sub1ModelPackage.getSub1Type_Name(), ((EClass) sub1EPackage.getEClassifiers().get(0))
.getEAllAttributes().get(2));
}
}