package org.eclipse.emf.test.tools.codegen;
import static org.junit.Assert.assertEquals;
import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
import org.eclipse.emf.codegen.ecore.genmodel.GenFeature;
import org.eclipse.emf.codegen.ecore.genmodel.GenModel;
import org.eclipse.emf.codegen.ecore.genmodel.GenPackage;
import org.eclipse.emf.codegen.ecore.genmodel.GenRuntimeVersion;
import org.junit.Test;
/**
* Copyright (c) 2009 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
*/
public class RemappedXMLTypesTest extends BaseGenModelTest
{
protected void assertCorrectTypes(GenPackage genPackage, String className, boolean old)
{
GenModel genModel = genPackage.getGenModel();
GenClass genClass = (GenClass)genModel.findGenClassifier(genPackage.getEcorePackage().getEClassifier(className));
prepareModel(genModel, genClass.getQualifiedClassName());
for (GenFeature genFeature : genClass.getGenFeatures())
{
String expectedType = getExpectedValue(genFeature.getEcoreFeature(), "type", old ? "Old" : "New");
String actualType = genFeature.getType(genClass);
assertEquals("Incorrect type for " + genFeature.getName(), expectedType, actualType);
boolean expectedIsObject = genFeature.getEcoreFeature().isMany() ? "org.eclipse.emf.common.util.EList<java.lang.Object>".equals(expectedType) : "java.lang.Object".equals(expectedType);
boolean actualIsObject = genFeature.getTypeGenDataType().isObjectType();
assertEquals("Incorrect isObject value for " + genFeature.getName(), expectedIsObject, actualIsObject);
}
}
@Test
public void testNewXMLTypes()
{
GenModel genModel = loadModel("XMLTypes.ecore");
initializeModel(genModel);
assertCorrectTypes(genModel.getGenPackages().get(0), "Item", false);
}
@Test
public void testOldXMLTypes()
{
GenModel genModel = loadModel("XMLTypes.ecore");
initializeModel(genModel);
genModel.setRuntimeVersion(GenRuntimeVersion.EMF22);
assertCorrectTypes(genModel.getGenPackages().get(0), "Item", true);
}
}