blob: d38530097916335e681917e0fe2f8cd18c55bb1b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007 Oracle.
* 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:
* Oracle - initial API and implementation
*******************************************************************************/
package org.eclipse.jpt.core.tests.internal.context.orm;
import java.util.Iterator;
import java.util.ListIterator;
import org.eclipse.jdt.core.IType;
import org.eclipse.jpt.core.internal.IMappingKeys;
import org.eclipse.jpt.core.internal.JptCorePlugin;
import org.eclipse.jpt.core.internal.context.base.AccessType;
import org.eclipse.jpt.core.internal.context.base.InheritanceType;
import org.eclipse.jpt.core.internal.context.orm.XmlAssociationOverride;
import org.eclipse.jpt.core.internal.context.orm.XmlAttributeOverride;
import org.eclipse.jpt.core.internal.context.orm.XmlEmbeddable;
import org.eclipse.jpt.core.internal.context.orm.XmlEntity;
import org.eclipse.jpt.core.internal.context.orm.XmlMappedSuperclass;
import org.eclipse.jpt.core.internal.context.orm.XmlNamedNativeQuery;
import org.eclipse.jpt.core.internal.context.orm.XmlNamedQuery;
import org.eclipse.jpt.core.internal.context.orm.XmlPersistentType;
import org.eclipse.jpt.core.internal.context.orm.XmlPrimaryKeyJoinColumn;
import org.eclipse.jpt.core.internal.context.orm.XmlSecondaryTable;
import org.eclipse.jpt.core.internal.resource.java.JPA;
import org.eclipse.jpt.core.internal.resource.orm.Embeddable;
import org.eclipse.jpt.core.internal.resource.orm.Entity;
import org.eclipse.jpt.core.internal.resource.orm.MappedSuperclass;
import org.eclipse.jpt.core.internal.resource.orm.OrmFactory;
import org.eclipse.jpt.core.internal.resource.persistence.PersistenceFactory;
import org.eclipse.jpt.core.internal.resource.persistence.XmlMappingFileRef;
import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
public class XmlEntityTests extends ContextModelTestCase
{
public XmlEntityTests(String name) {
super(name);
}
@Override
protected void setUp() throws Exception {
super.setUp();
XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
xmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
persistenceResource().save(null);
}
private void createEntityAnnotation() throws Exception {
this.createAnnotationAndMembers("Entity", "String name() default \"\";");
}
private void createIdAnnotation() throws Exception {
this.createAnnotationAndMembers("Id", "");
}
private IType createTestEntityDefaultFieldAccess() throws Exception {
createEntityAnnotation();
return this.createTestType(new DefaultAnnotationWriter() {
@Override
public Iterator<String> imports() {
return new ArrayIterator<String>(JPA.ENTITY);
}
@Override
public void appendTypeAnnotationTo(StringBuilder sb) {
sb.append("@Entity");
}
});
}
private IType createTestEntityFieldAccess() throws Exception {
createEntityAnnotation();
createIdAnnotation();
return this.createTestType(new DefaultAnnotationWriter() {
@Override
public Iterator<String> imports() {
return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
}
@Override
public void appendTypeAnnotationTo(StringBuilder sb) {
sb.append("@Entity");
}
@Override
public void appendIdFieldAnnotationTo(StringBuilder sb) {
sb.append("@Id");
}
});
}
private IType createTestEntityPropertyAccess() throws Exception {
createEntityAnnotation();
createIdAnnotation();
return this.createTestType(new DefaultAnnotationWriter() {
@Override
public Iterator<String> imports() {
return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
}
@Override
public void appendTypeAnnotationTo(StringBuilder sb) {
sb.append("@Entity");
}
@Override
public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
sb.append("@Id");
}
});
}
private IType createTestSubType() throws Exception {
SourceWriter sourceWriter = new SourceWriter() {
public void appendSourceTo(StringBuilder sb) {
sb.append(CR);
sb.append("import ");
sb.append(JPA.ENTITY);
sb.append(";");
sb.append(CR);
sb.append("@Entity");
sb.append(CR);
sb.append("public class ").append("AnnotationTestTypeChild").append(" ");
sb.append("extends " + TYPE_NAME + " ");
sb.append("{}").append(CR);
}
};
return this.javaProject.createType(PACKAGE_NAME, "AnnotationTestTypeChild.java", sourceWriter);
}
public void testUpdateSpecifiedName() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getSpecifiedName());
assertNull(entityResource.getName());
//set name in the resource model, verify context model updated
entityResource.setName("foo");
assertEquals("foo", xmlEntity.getSpecifiedName());
assertEquals("foo", entityResource.getName());
//set name to null in the resource model
entityResource.setName(null);
assertNull(xmlEntity.getSpecifiedName());
assertNull(entityResource.getName());
}
public void testModifySpecifiedName() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getSpecifiedName());
assertNull(entityResource.getName());
//set name in the context model, verify resource model modified
xmlEntity.setSpecifiedName("foo");
assertEquals("foo", xmlEntity.getSpecifiedName());
assertEquals("foo", entityResource.getName());
//set name to null in the context model
xmlEntity.setSpecifiedName(null);
assertNull(xmlEntity.getSpecifiedName());
assertNull(entityResource.getName());
}
public void testUpdateDefaultName() throws Exception {
createTestEntityFieldAccess();
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertEquals(TYPE_NAME, xmlEntity.getDefaultName());
xmlEntity.javaEntity().setSpecifiedName("Foo");
//xml default name is not affect by what is specified in java
assertEquals(TYPE_NAME, xmlEntity.getDefaultName());
//set class in the resource model, verify context model updated
entityResource.setClassName("com.Bar");
assertEquals("Bar", xmlEntity.getDefaultName());
//set class to null in the resource model
entityResource.setClassName(null);
assertNull(xmlEntity.getDefaultName());
}
public void testUpdateName() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertEquals("Foo", xmlEntity.getName());
//set class in the resource model, verify context model updated
entityResource.setClassName("com.Bar");
assertEquals("Bar", xmlEntity.getName());
entityResource.setName("Baz");
assertEquals("Baz", xmlEntity.getName());
//set class to null in the resource model
entityResource.setClassName(null);
assertEquals("Baz", xmlEntity.getName());
entityResource.setName(null);
assertNull(xmlEntity.getName());
}
public void testUpdateClass() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertEquals("model.Foo", xmlEntity.getClass_());
assertEquals("model.Foo", entityResource.getClassName());
//set class in the resource model, verify context model updated
entityResource.setClassName("com.Bar");
assertEquals("com.Bar", xmlEntity.getClass_());
assertEquals("com.Bar", entityResource.getClassName());
//set class to null in the resource model
entityResource.setClassName(null);
assertNull(xmlEntity.getClass_());
assertNull(entityResource.getClassName());
}
public void testModifyClass() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertEquals("model.Foo", xmlEntity.getClass_());
assertEquals("model.Foo", entityResource.getClassName());
//set class in the context model, verify resource model modified
xmlEntity.setClass("com.Bar");
assertEquals("com.Bar", xmlEntity.getClass_());
assertEquals("com.Bar", entityResource.getClassName());
//set class to null in the context model
xmlEntity.setClass(null);
assertNull(xmlEntity.getClass_());
assertNull(entityResource.getClassName());
}
//TODO add tests for setting the className when the package is set on entity-mappings
public void testUpdateSpecifiedAccess() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getSpecifiedAccess());
assertNull(entityResource.getAccess());
//set access in the resource model, verify context model updated
entityResource.setAccess(org.eclipse.jpt.core.internal.resource.orm.AccessType.FIELD);
ormResource().save(null);
assertEquals(AccessType.FIELD, xmlEntity.getSpecifiedAccess());
assertEquals(org.eclipse.jpt.core.internal.resource.orm.AccessType.FIELD, entityResource.getAccess());
//set access to null in the resource model
entityResource.setAccess(null);
assertNull(xmlEntity.getSpecifiedAccess());
assertNull(entityResource.getAccess());
}
public void testModifySpecifiedAccess() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getSpecifiedAccess());
assertNull(entityResource.getAccess());
//set access in the context model, verify resource model modified
xmlEntity.setSpecifiedAccess(AccessType.PROPERTY);
assertEquals(AccessType.PROPERTY, xmlEntity.getSpecifiedAccess());
assertEquals(org.eclipse.jpt.core.internal.resource.orm.AccessType.PROPERTY, entityResource.getAccess());
//set access to null in the context model
xmlEntity.setSpecifiedAccess(null);
assertNull(xmlEntity.getSpecifiedAccess());
assertNull(entityResource.getAccess());
}
public void testUpdateDefaultAccessFromPersistenceUnitDefaults() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getSpecifiedAccess());
assertNull(xmlEntity.getDefaultAccess());
assertNull(entityResource.getAccess());
ormResource().getEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createPersistenceUnitMetadata());
ormResource().getEntityMappings().getPersistenceUnitMetadata().setPersistenceUnitDefaults(OrmFactory.eINSTANCE.createPersistenceUnitDefaults());
ormResource().getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(org.eclipse.jpt.core.internal.resource.orm.AccessType.FIELD);
assertEquals(AccessType.FIELD, xmlEntity.getDefaultAccess());
assertNull(xmlEntity.getSpecifiedAccess());
assertNull(entityResource.getAccess());
ormResource().getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(org.eclipse.jpt.core.internal.resource.orm.AccessType.PROPERTY);
assertEquals(AccessType.PROPERTY, xmlEntity.getDefaultAccess());
assertNull(xmlEntity.getSpecifiedAccess());
assertNull(entityResource.getAccess());
ormResource().getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(null);
assertNull(xmlEntity.getSpecifiedAccess());
assertNull(xmlEntity.getDefaultAccess());
assertNull(entityResource.getAccess());
}
public void testUpdateDefaultAccessFromJava() throws Exception {
createTestEntityDefaultFieldAccess();
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
//java has no annotations, so defaultAccess in xml is null
assertNull(xmlEntity.getDefaultAccess());
entityMappings().setSpecifiedAccess(AccessType.FIELD);
entityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.PROPERTY);
//entityMappings access wins over persistence-unit-defaults access
assertEquals(AccessType.FIELD, xmlEntity.getDefaultAccess());
entityMappings().setSpecifiedAccess(null);
//persistence-unit-defaults access used now
assertEquals(AccessType.PROPERTY, xmlEntity.getDefaultAccess());
entityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(null);
assertNull(xmlEntity.getDefaultAccess());
xmlPersistentType.javaPersistentType().attributeNamed("id").setSpecifiedMappingKey(IMappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
//java has annotations on fields now, that should win in all cases
assertEquals(AccessType.FIELD, xmlEntity.getDefaultAccess());
entityMappings().setSpecifiedAccess(AccessType.PROPERTY);
entityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.PROPERTY);
assertEquals(AccessType.FIELD, xmlEntity.getDefaultAccess());
xmlPersistentType.javaPersistentType().attributeNamed("id").setSpecifiedMappingKey(IMappingKeys.NULL_ATTRIBUTE_MAPPING_KEY);
assertEquals(AccessType.PROPERTY, xmlEntity.getDefaultAccess());
}
public void testUpdateDefaultAccessFromJavaFieldAccess() throws Exception {
createTestEntityFieldAccess();
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
assertEquals(AccessType.FIELD, xmlEntity.getDefaultAccess());
xmlEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
assertNull(xmlEntity.getDefaultAccess());
xmlEntity.setSpecifiedMetadataComplete(Boolean.FALSE);
assertEquals(AccessType.FIELD, xmlEntity.getDefaultAccess());
entityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
assertNull(xmlEntity.getDefaultAccess());
xmlEntity.setSpecifiedMetadataComplete(null);
assertNull(xmlEntity.getDefaultAccess());
entityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
assertEquals(AccessType.FIELD, xmlEntity.getDefaultAccess());
}
public void testUpdateDefaultAccessFromJavaPropertyAccess() throws Exception {
createTestEntityPropertyAccess();
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
assertEquals(AccessType.PROPERTY, xmlEntity.getDefaultAccess());
xmlEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
assertNull(xmlEntity.getDefaultAccess());
xmlEntity.setSpecifiedMetadataComplete(Boolean.FALSE);
assertEquals(AccessType.PROPERTY, xmlEntity.getDefaultAccess());
entityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
assertNull(xmlEntity.getDefaultAccess());
xmlEntity.setSpecifiedMetadataComplete(null);
assertNull(xmlEntity.getDefaultAccess());
entityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
assertEquals(AccessType.PROPERTY, xmlEntity.getDefaultAccess());
}
public void testUpdateDefaultAccessNoUnderlyingJava() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
assertNull(xmlEntity.getDefaultAccess());
}
public void testUpdateSpecifiedMetadataComplete() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getSpecifiedMetadataComplete());
assertNull(entityResource.getMetadataComplete());
//set metadata-complete in the resource model, verify context model updated
entityResource.setMetadataComplete(true);
ormResource().save(null);
assertTrue(xmlEntity.getSpecifiedMetadataComplete());
assertTrue(entityResource.getMetadataComplete());
//set access to false in the resource model
entityResource.setMetadataComplete(false);
ormResource().save(null);
assertFalse(xmlEntity.getSpecifiedMetadataComplete());
assertFalse(entityResource.getMetadataComplete());
entityResource.setMetadataComplete(null);
ormResource().save(null);
assertNull(xmlEntity.getSpecifiedMetadataComplete());
assertNull(entityResource.getMetadataComplete());
}
public void testModifySpecifiedMetadataComplete() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getSpecifiedMetadataComplete());
assertNull(entityResource.getMetadataComplete());
//set access in the context model, verify resource model modified
xmlEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
assertTrue(xmlEntity.getSpecifiedMetadataComplete());
assertTrue(entityResource.getMetadataComplete());
//set access to null in the context model
xmlEntity.setSpecifiedMetadataComplete(Boolean.FALSE);
assertFalse(xmlEntity.getSpecifiedMetadataComplete());
assertFalse(entityResource.getMetadataComplete());
xmlEntity.setSpecifiedMetadataComplete(null);
assertNull(xmlEntity.getSpecifiedMetadataComplete());
assertNull(entityResource.getMetadataComplete());
}
public void testUpdateDefaultMetadataComplete() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getSpecifiedMetadataComplete());
assertFalse(xmlEntity.isDefaultMetadataComplete());
assertNull(entityResource.getMetadataComplete());
ormResource().getEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createPersistenceUnitMetadata());
ormResource().getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
assertTrue(xmlEntity.isDefaultMetadataComplete());
assertNull(xmlEntity.getSpecifiedMetadataComplete());
assertNull(entityResource.getMetadataComplete());
ormResource().getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
assertNull(xmlEntity.getSpecifiedMetadataComplete());
assertFalse(xmlEntity.isDefaultMetadataComplete());
assertNull(entityResource.getMetadataComplete());
ormResource().getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
xmlEntity.setSpecifiedMetadataComplete(false);
assertFalse(xmlEntity.getSpecifiedMetadataComplete());
assertTrue(xmlEntity.isDefaultMetadataComplete());
assertTrue(xmlEntity.isMetadataComplete());
}
public void testUpdateMetadataComplete() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getSpecifiedMetadataComplete());
assertFalse(xmlEntity.isMetadataComplete());
assertNull(entityResource.getMetadataComplete());
ormResource().getEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createPersistenceUnitMetadata());
ormResource().getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
assertTrue(xmlEntity.isMetadataComplete());
assertNull(xmlEntity.getSpecifiedMetadataComplete());
assertNull(entityResource.getMetadataComplete());
ormResource().getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
assertFalse(xmlEntity.isMetadataComplete());
assertNull(xmlEntity.getSpecifiedMetadataComplete());
assertNull(entityResource.getMetadataComplete());
}
public void testUpdateInheritanceStrategy() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertEquals(InheritanceType.SINGLE_TABLE, xmlEntity.getInheritanceStrategy());
assertNull(entityResource.getInheritance());
//set inheritance strategy in the resource model, verify context model updated
entityResource.setInheritance(OrmFactory.eINSTANCE.createInheritance());
entityResource.getInheritance().setStrategy(org.eclipse.jpt.core.internal.resource.orm.InheritanceType.TABLE_PER_CLASS);
assertEquals(InheritanceType.TABLE_PER_CLASS, xmlEntity.getInheritanceStrategy());
assertEquals(org.eclipse.jpt.core.internal.resource.orm.InheritanceType.TABLE_PER_CLASS, entityResource.getInheritance().getStrategy());
}
public void testUpdateDefaultInheritanceStrategyFromJava() throws Exception {
createTestEntityDefaultFieldAccess();
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
//no inheritance strategy specified in java so single-table is default
assertEquals(InheritanceType.SINGLE_TABLE, xmlEntity.getDefaultInheritanceStrategy());
xmlEntity.javaEntity().setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
assertEquals(InheritanceType.JOINED, xmlEntity.getDefaultInheritanceStrategy());
xmlEntity.setSpecifiedInheritanceStrategy(InheritanceType.TABLE_PER_CLASS);
ormResource().save(null);
//inheritance tag exists in xml, so it overrides anything in java
assertEquals(InheritanceType.SINGLE_TABLE, xmlEntity.getDefaultInheritanceStrategy());
xmlEntity.setSpecifiedInheritanceStrategy(null);
ormResource().save(null);
assertEquals(InheritanceType.JOINED, xmlEntity.getDefaultInheritanceStrategy());
xmlEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
ormResource().save(null);
assertEquals(InheritanceType.SINGLE_TABLE, xmlEntity.getDefaultInheritanceStrategy());
xmlEntity.setSpecifiedMetadataComplete(Boolean.FALSE);
assertEquals(InheritanceType.JOINED, xmlEntity.getDefaultInheritanceStrategy());
xmlEntity.entityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
//this setting overrides the false meta-data complete found on xmlEntity
assertEquals(InheritanceType.SINGLE_TABLE, xmlEntity.getDefaultInheritanceStrategy());
}
public void testUpdateDefaultInheritanceStrategyFromParent() throws Exception {
createTestEntityDefaultFieldAccess();
createTestSubType();
XmlPersistentType parentPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlPersistentType childPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
XmlEntity parentXmlEntity = (XmlEntity) parentPersistentType.getMapping();
XmlEntity childXmlEntity = (XmlEntity) childPersistentType.getMapping();
assertEquals(parentXmlEntity, childXmlEntity.parentEntity());
assertEquals(InheritanceType.SINGLE_TABLE, childXmlEntity.getDefaultInheritanceStrategy());
//change root inheritance strategy, verify default is changed for child entity
parentXmlEntity.setSpecifiedInheritanceStrategy(InheritanceType.TABLE_PER_CLASS);
assertEquals(InheritanceType.SINGLE_TABLE, parentXmlEntity.getDefaultInheritanceStrategy());
assertEquals(InheritanceType.TABLE_PER_CLASS, childXmlEntity.getDefaultInheritanceStrategy());
assertNull(childXmlEntity.getSpecifiedInheritanceStrategy());
//set specified inheritance strategy in java and verify defaults in xml are correct
parentXmlEntity.setSpecifiedInheritanceStrategy(null);
parentXmlEntity.javaEntity().setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
assertEquals(InheritanceType.JOINED, parentXmlEntity.getDefaultInheritanceStrategy());
assertEquals(InheritanceType.JOINED, childXmlEntity.getDefaultInheritanceStrategy());
assertNull(parentXmlEntity.getSpecifiedInheritanceStrategy());
assertNull(childXmlEntity.getSpecifiedInheritanceStrategy());
parentPersistentType.entityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
assertEquals(InheritanceType.SINGLE_TABLE, parentXmlEntity.getDefaultInheritanceStrategy());
assertEquals(InheritanceType.SINGLE_TABLE, childXmlEntity.getDefaultInheritanceStrategy());
}
public void testUpdateSpecifiedInheritanceStrategy() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getSpecifiedInheritanceStrategy());
assertNull(entityResource.getInheritance());
//set strategy in the resource model, verify context model updated
entityResource.setInheritance(OrmFactory.eINSTANCE.createInheritance());
entityResource.getInheritance().setStrategy(org.eclipse.jpt.core.internal.resource.orm.InheritanceType.JOINED);
assertEquals(InheritanceType.JOINED, xmlEntity.getSpecifiedInheritanceStrategy());
assertEquals(org.eclipse.jpt.core.internal.resource.orm.InheritanceType.JOINED, entityResource.getInheritance().getStrategy());
//set strategy to null in the resource model
entityResource.getInheritance().setStrategy(null);
assertNull(xmlEntity.getSpecifiedInheritanceStrategy());
assertNull(entityResource.getInheritance().getStrategy());
entityResource.getInheritance().setStrategy(org.eclipse.jpt.core.internal.resource.orm.InheritanceType.SINGLE_TABLE);
assertEquals(InheritanceType.SINGLE_TABLE, xmlEntity.getSpecifiedInheritanceStrategy());
assertEquals(org.eclipse.jpt.core.internal.resource.orm.InheritanceType.SINGLE_TABLE, entityResource.getInheritance().getStrategy());
entityResource.setInheritance(null);
assertNull(xmlEntity.getSpecifiedInheritanceStrategy());
assertNull(entityResource.getInheritance());
}
public void testModifySpecifiedInheritanceStrategy() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getSpecifiedInheritanceStrategy());
assertNull(entityResource.getInheritance());
//set strategy in the context model, verify resource model modified
xmlEntity.setSpecifiedInheritanceStrategy(InheritanceType.TABLE_PER_CLASS);
assertEquals(InheritanceType.TABLE_PER_CLASS, xmlEntity.getSpecifiedInheritanceStrategy());
assertEquals(org.eclipse.jpt.core.internal.resource.orm.InheritanceType.TABLE_PER_CLASS, entityResource.getInheritance().getStrategy());
//set strategy to null in the context model
xmlEntity.setSpecifiedInheritanceStrategy(null);
assertNull(xmlEntity.getSpecifiedInheritanceStrategy());
assertNull(entityResource.getInheritance());
}
public void testAddSpecifiedSecondaryTable() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
XmlSecondaryTable secondaryTable = xmlEntity.addSpecifiedSecondaryTable(0);
ormResource().save(null);
secondaryTable.setSpecifiedName("FOO");
ormResource().save(null);
assertEquals("FOO", entityResource.getSecondaryTables().get(0).getName());
XmlSecondaryTable secondaryTable2 = xmlEntity.addSpecifiedSecondaryTable(0);
ormResource().save(null);
secondaryTable2.setSpecifiedName("BAR");
ormResource().save(null);
assertEquals("BAR", entityResource.getSecondaryTables().get(0).getName());
assertEquals("FOO", entityResource.getSecondaryTables().get(1).getName());
XmlSecondaryTable secondaryTable3 = xmlEntity.addSpecifiedSecondaryTable(1);
ormResource().save(null);
secondaryTable3.setSpecifiedName("BAZ");
ormResource().save(null);
assertEquals("BAR", entityResource.getSecondaryTables().get(0).getName());
assertEquals("BAZ", entityResource.getSecondaryTables().get(1).getName());
assertEquals("FOO", entityResource.getSecondaryTables().get(2).getName());
ListIterator<XmlSecondaryTable> secondaryTables = xmlEntity.specifiedSecondaryTables();
assertEquals(secondaryTable2, secondaryTables.next());
assertEquals(secondaryTable3, secondaryTables.next());
assertEquals(secondaryTable, secondaryTables.next());
secondaryTables = xmlEntity.specifiedSecondaryTables();
assertEquals("BAR", secondaryTables.next().getName());
assertEquals("BAZ", secondaryTables.next().getName());
assertEquals("FOO", secondaryTables.next().getName());
}
public void testRemoveSpecifiedSecondaryTable() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
xmlEntity.addSpecifiedSecondaryTable(0).setSpecifiedName("FOO");
xmlEntity.addSpecifiedSecondaryTable(1).setSpecifiedName("BAR");
xmlEntity.addSpecifiedSecondaryTable(2).setSpecifiedName("BAZ");
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertEquals(3, entityResource.getSecondaryTables().size());
xmlEntity.removeSpecifiedSecondaryTable(0);
assertEquals(2, entityResource.getSecondaryTables().size());
assertEquals("BAR", entityResource.getSecondaryTables().get(0).getName());
assertEquals("BAZ", entityResource.getSecondaryTables().get(1).getName());
xmlEntity.removeSpecifiedSecondaryTable(0);
assertEquals(1, entityResource.getSecondaryTables().size());
assertEquals("BAZ", entityResource.getSecondaryTables().get(0).getName());
xmlEntity.removeSpecifiedSecondaryTable(0);
assertEquals(0, entityResource.getSecondaryTables().size());
}
public void testMoveSpecifiedSecondaryTable() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
xmlEntity.addSpecifiedSecondaryTable(0).setSpecifiedName("FOO");
xmlEntity.addSpecifiedSecondaryTable(1).setSpecifiedName("BAR");
xmlEntity.addSpecifiedSecondaryTable(2).setSpecifiedName("BAZ");
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertEquals(3, entityResource.getSecondaryTables().size());
xmlEntity.moveSpecifiedSecondaryTable(2, 0);
ListIterator<XmlSecondaryTable> secondaryTables = xmlEntity.specifiedSecondaryTables();
assertEquals("BAR", secondaryTables.next().getName());
assertEquals("BAZ", secondaryTables.next().getName());
assertEquals("FOO", secondaryTables.next().getName());
assertEquals("BAR", entityResource.getSecondaryTables().get(0).getName());
assertEquals("BAZ", entityResource.getSecondaryTables().get(1).getName());
assertEquals("FOO", entityResource.getSecondaryTables().get(2).getName());
xmlEntity.moveSpecifiedSecondaryTable(0, 1);
secondaryTables = xmlEntity.specifiedSecondaryTables();
assertEquals("BAZ", secondaryTables.next().getName());
assertEquals("BAR", secondaryTables.next().getName());
assertEquals("FOO", secondaryTables.next().getName());
assertEquals("BAZ", entityResource.getSecondaryTables().get(0).getName());
assertEquals("BAR", entityResource.getSecondaryTables().get(1).getName());
assertEquals("FOO", entityResource.getSecondaryTables().get(2).getName());
}
public void testUpdateSecondaryTables() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
entityResource.getSecondaryTables().add(OrmFactory.eINSTANCE.createSecondaryTable());
entityResource.getSecondaryTables().add(OrmFactory.eINSTANCE.createSecondaryTable());
entityResource.getSecondaryTables().add(OrmFactory.eINSTANCE.createSecondaryTable());
entityResource.getSecondaryTables().get(0).setName("FOO");
entityResource.getSecondaryTables().get(1).setName("BAR");
entityResource.getSecondaryTables().get(2).setName("BAZ");
ListIterator<XmlSecondaryTable> secondaryTables = xmlEntity.specifiedSecondaryTables();
assertEquals("FOO", secondaryTables.next().getName());
assertEquals("BAR", secondaryTables.next().getName());
assertEquals("BAZ", secondaryTables.next().getName());
assertFalse(secondaryTables.hasNext());
entityResource.getSecondaryTables().move(2, 0);
secondaryTables = xmlEntity.specifiedSecondaryTables();
assertEquals("BAR", secondaryTables.next().getName());
assertEquals("BAZ", secondaryTables.next().getName());
assertEquals("FOO", secondaryTables.next().getName());
assertFalse(secondaryTables.hasNext());
entityResource.getSecondaryTables().move(0, 1);
secondaryTables = xmlEntity.specifiedSecondaryTables();
assertEquals("BAZ", secondaryTables.next().getName());
assertEquals("BAR", secondaryTables.next().getName());
assertEquals("FOO", secondaryTables.next().getName());
assertFalse(secondaryTables.hasNext());
entityResource.getSecondaryTables().remove(1);
secondaryTables = xmlEntity.specifiedSecondaryTables();
assertEquals("BAZ", secondaryTables.next().getName());
assertEquals("FOO", secondaryTables.next().getName());
assertFalse(secondaryTables.hasNext());
entityResource.getSecondaryTables().remove(1);
secondaryTables = xmlEntity.specifiedSecondaryTables();
assertEquals("BAZ", secondaryTables.next().getName());
assertFalse(secondaryTables.hasNext());
entityResource.getSecondaryTables().remove(0);
assertFalse(xmlEntity.specifiedSecondaryTables().hasNext());
}
//test adding 2 secondary tables to java entity
//override one in xmlEntity, verify other one still exists as a default
//change xml-mapping-metadata complete setting in both locations and verify defaults from java are gone
public void testDefaultSecondaryTables() throws Exception {
createTestEntityDefaultFieldAccess();
createTestSubType();
XmlPersistentType parentPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlPersistentType childPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
XmlEntity parentXmlEntity = (XmlEntity) parentPersistentType.getMapping();
XmlEntity childXmlEntity = (XmlEntity) childPersistentType.getMapping();
childXmlEntity.javaEntity().addSpecifiedSecondaryTable(0).setSpecifiedName("FOO");
assertEquals("FOO", childXmlEntity.virtualSecondaryTables().next().getName());
assertEquals("FOO", childXmlEntity.secondaryTables().next().getName());
assertEquals(0, childXmlEntity.specifiedSecondaryTablesSize());
assertEquals(1, childXmlEntity.virtualSecondaryTablesSize());
assertEquals(1, childXmlEntity.secondaryTablesSize());
childXmlEntity.javaEntity().addSpecifiedSecondaryTable(0).setSpecifiedName("BAR");
ListIterator<XmlSecondaryTable> virtualSecondaryTables = childXmlEntity.virtualSecondaryTables();
ListIterator<XmlSecondaryTable> secondaryTables = childXmlEntity.secondaryTables();
assertEquals("BAR", virtualSecondaryTables.next().getName());
assertEquals("FOO", virtualSecondaryTables.next().getName());
assertEquals("BAR", secondaryTables.next().getName());
assertEquals("FOO", secondaryTables.next().getName());
assertEquals(0, childXmlEntity.specifiedSecondaryTablesSize());
assertEquals(2, childXmlEntity.virtualSecondaryTablesSize());
assertEquals(2, childXmlEntity.secondaryTablesSize());
childXmlEntity.addSpecifiedSecondaryTable(0).setSpecifiedName("BAZ");
virtualSecondaryTables = childXmlEntity.virtualSecondaryTables();
secondaryTables = childXmlEntity.secondaryTables();
assertFalse(virtualSecondaryTables.hasNext());
assertEquals("BAZ", secondaryTables.next().getName());
assertEquals(1, childXmlEntity.specifiedSecondaryTablesSize());
assertEquals(0, childXmlEntity.virtualSecondaryTablesSize());
assertEquals(1, childXmlEntity.secondaryTablesSize());
childXmlEntity.addSpecifiedSecondaryTable(0).setSpecifiedName("FOO");
virtualSecondaryTables = childXmlEntity.virtualSecondaryTables();
secondaryTables = childXmlEntity.secondaryTables();
assertFalse(virtualSecondaryTables.hasNext());
assertEquals("FOO", secondaryTables.next().getName());
assertEquals("BAZ", secondaryTables.next().getName());
assertFalse(secondaryTables.hasNext());
assertEquals(2, childXmlEntity.specifiedSecondaryTablesSize());
assertEquals(0, childXmlEntity.virtualSecondaryTablesSize());
assertEquals(2, childXmlEntity.secondaryTablesSize());
//add a specified secondary table to the parent, this will not affect virtual secondaryTables in child
parentXmlEntity.addSpecifiedSecondaryTable(0).setSpecifiedName("PARENT_TABLE");
virtualSecondaryTables = childXmlEntity.virtualSecondaryTables();
secondaryTables = childXmlEntity.secondaryTables();
assertFalse(virtualSecondaryTables.hasNext());
assertEquals("FOO", secondaryTables.next().getName());
assertEquals("BAZ", secondaryTables.next().getName());
assertFalse(secondaryTables.hasNext());
assertEquals(2, childXmlEntity.specifiedSecondaryTablesSize());
assertEquals(0, childXmlEntity.virtualSecondaryTablesSize());
assertEquals(2, childXmlEntity.secondaryTablesSize());
childXmlEntity.removeSpecifiedSecondaryTable(0);
childXmlEntity.removeSpecifiedSecondaryTable(0);
virtualSecondaryTables = childXmlEntity.virtualSecondaryTables();
secondaryTables = childXmlEntity.secondaryTables();
assertEquals("BAR", virtualSecondaryTables.next().getName());
assertEquals("FOO", virtualSecondaryTables.next().getName());
assertFalse(virtualSecondaryTables.hasNext());
assertEquals("BAR", secondaryTables.next().getName());
assertEquals("FOO", secondaryTables.next().getName());
assertFalse(secondaryTables.hasNext());
assertEquals(0, childXmlEntity.specifiedSecondaryTablesSize());
assertEquals(2, childXmlEntity.virtualSecondaryTablesSize());
assertEquals(2, childXmlEntity.secondaryTablesSize());
}
//test that inherited tables don't show up in this list
public void testAssociatedTables() throws Exception {
}
public void testAssociatedTableNamesIncludingInherited() throws Exception {
}
public void testTableNameIsInvalid() throws Exception {
}
public void testMakeEntityEmbeddable() throws Exception {
XmlPersistentType entityPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity entity = (XmlEntity) entityPersistentType.getMapping();
entity.setSpecifiedAccess(AccessType.PROPERTY);
entity.setSpecifiedDiscriminatorValue("DISC_VALUE");
entity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
entity.setSpecifiedMetadataComplete(Boolean.TRUE);
entity.setSpecifiedName("ENTITY_NAME");
ormResource().save(null);
entityPersistentType.setMappingKey(IMappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY);
ormResource().save(null);
Embeddable embeddable = ormResource().getEntityMappings().getEmbeddables().get(0);
assertEquals("model.Foo", embeddable.getClassName());
assertEquals(Boolean.TRUE, embeddable.getMetadataComplete());
assertEquals(org.eclipse.jpt.core.internal.resource.orm.AccessType.PROPERTY, embeddable.getAccess());
XmlEmbeddable xmlEmbeddable = (XmlEmbeddable) entityPersistentType.getMapping();
assertEquals("model.Foo", xmlEmbeddable.getClass_());
assertEquals(Boolean.TRUE, xmlEmbeddable.getSpecifiedMetadataComplete());
assertEquals(AccessType.PROPERTY, xmlEmbeddable.getSpecifiedAccess());
}
//TODO test that attribute mappings are not removed when changing type mapping.
public void testMakeEntityEmbeddable2() throws Exception {
XmlPersistentType entityPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo2");
XmlEntity entity = (XmlEntity) entityPersistentType.getMapping();
entity.setSpecifiedAccess(AccessType.PROPERTY);
entity.setSpecifiedDiscriminatorValue("DISC_VALUE");
entity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
entity.setSpecifiedMetadataComplete(Boolean.TRUE);
entity.setSpecifiedName("ENTITY_NAME");
// entityPersistentType.addSpecifiedPersistentAttribute(IMappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
ormResource().save(null);
entityPersistentType.setMappingKey(IMappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY);
ormResource().save(null);
Embeddable embeddable = ormResource().getEntityMappings().getEmbeddables().get(0);
assertEquals("model.Foo", embeddable.getClassName());
assertEquals(Boolean.TRUE, embeddable.getMetadataComplete());
assertEquals(org.eclipse.jpt.core.internal.resource.orm.AccessType.PROPERTY, embeddable.getAccess());
// assertEquals("basicMapping", embeddable.getAttributes().getBasics().get(0).getName());
XmlEmbeddable xmlEmbeddable = (XmlEmbeddable) entityPersistentType.getMapping();
assertEquals("model.Foo", xmlEmbeddable.getClass_());
assertEquals(Boolean.TRUE, xmlEmbeddable.getSpecifiedMetadataComplete());
assertEquals(AccessType.PROPERTY, xmlEmbeddable.getSpecifiedAccess());
// assertEquals("basicMapping", xmlEmbeddable.persistentType().attributes().next().getName());
}
public void testMakeEntityMappedSuperclass() throws Exception {
XmlPersistentType entityPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity entity = (XmlEntity) entityPersistentType.getMapping();
entity.setSpecifiedAccess(AccessType.PROPERTY);
entity.setSpecifiedDiscriminatorValue("DISC_VALUE");
entity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
entity.setSpecifiedMetadataComplete(Boolean.TRUE);
entity.setSpecifiedName("ENTITY_NAME");
ormResource().save(null);
entityPersistentType.setMappingKey(IMappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY);
ormResource().save(null);
MappedSuperclass mappedSuperclass = ormResource().getEntityMappings().getMappedSuperclasses().get(0);
assertEquals("model.Foo", mappedSuperclass.getClassName());
assertEquals(Boolean.TRUE, mappedSuperclass.getMetadataComplete());
assertEquals(org.eclipse.jpt.core.internal.resource.orm.AccessType.PROPERTY, mappedSuperclass.getAccess());
XmlMappedSuperclass xmlMappedSuperclass = (XmlMappedSuperclass) entityPersistentType.getMapping();
assertEquals("model.Foo", xmlMappedSuperclass.getClass_());
assertEquals(Boolean.TRUE, xmlMappedSuperclass.getSpecifiedMetadataComplete());
assertEquals(AccessType.PROPERTY, xmlMappedSuperclass.getSpecifiedAccess());
}
public void testMakeEntityMappedSuperclass2() throws Exception {
entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo2");
XmlPersistentType entityPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity entity = (XmlEntity) entityPersistentType.getMapping();
entity.setSpecifiedAccess(AccessType.PROPERTY);
entity.setSpecifiedDiscriminatorValue("DISC_VALUE");
entity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
entity.setSpecifiedMetadataComplete(Boolean.TRUE);
entity.setSpecifiedName("ENTITY_NAME");
ormResource().save(null);
entityPersistentType.setMappingKey(IMappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY);
ormResource().save(null);
MappedSuperclass mappedSuperclass = ormResource().getEntityMappings().getMappedSuperclasses().get(0);
assertEquals("model.Foo", mappedSuperclass.getClassName());
assertEquals(Boolean.TRUE, mappedSuperclass.getMetadataComplete());
assertEquals(org.eclipse.jpt.core.internal.resource.orm.AccessType.PROPERTY, mappedSuperclass.getAccess());
XmlMappedSuperclass xmlMappedSuperclass = (XmlMappedSuperclass) entityPersistentType.getMapping();
assertEquals("model.Foo", xmlMappedSuperclass.getClass_());
assertEquals(Boolean.TRUE, xmlMappedSuperclass.getSpecifiedMetadataComplete());
assertEquals(AccessType.PROPERTY, xmlMappedSuperclass.getSpecifiedAccess());
}
public void testAddSequenceGenerator() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getSequenceGenerator());
assertNull(entityResource.getSequenceGenerator());
xmlEntity.addSequenceGenerator();
assertNotNull(entityResource.getSequenceGenerator());
assertNotNull(xmlEntity.getSequenceGenerator());
//try adding another sequence generator, should get an IllegalStateException
try {
xmlEntity.addSequenceGenerator();
} catch (IllegalStateException e) {
return;
}
fail("IllegalStateException not thrown");
}
public void testRemoveSequenceGenerator() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getSequenceGenerator());
assertNull(entityResource.getSequenceGenerator());
xmlEntity.addSequenceGenerator();
assertNotNull(entityResource.getSequenceGenerator());
assertNotNull(xmlEntity.getSequenceGenerator());
xmlEntity.removeSequenceGenerator();
assertNull(xmlEntity.getSequenceGenerator());
assertNull(entityResource.getSequenceGenerator());
//try removing the sequence generator again, should get an IllegalStateException
try {
xmlEntity.removeSequenceGenerator();
} catch (IllegalStateException e) {
return;
}
fail("IllegalStateException not thrown");
}
public void testUpdateSequenceGenerator() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getSequenceGenerator());
assertNull(entityResource.getSequenceGenerator());
entityResource.setSequenceGenerator(OrmFactory.eINSTANCE.createSequenceGeneratorImpl());
assertNotNull(xmlEntity.getSequenceGenerator());
assertNotNull(entityResource.getSequenceGenerator());
entityResource.setSequenceGenerator(null);
assertNull(xmlEntity.getSequenceGenerator());
assertNull(entityResource.getSequenceGenerator());
}
public void testAddTableGenerator() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getTableGenerator());
assertNull(entityResource.getTableGenerator());
xmlEntity.addTableGenerator();
assertNotNull(entityResource.getTableGenerator());
assertNotNull(xmlEntity.getTableGenerator());
//try adding another table generator, should get an IllegalStateException
try {
xmlEntity.addTableGenerator();
} catch (IllegalStateException e) {
return;
}
fail("IllegalStateException not thrown");
}
public void testRemoveTableGenerator() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getTableGenerator());
assertNull(entityResource.getTableGenerator());
xmlEntity.addTableGenerator();
assertNotNull(entityResource.getTableGenerator());
assertNotNull(xmlEntity.getTableGenerator());
xmlEntity.removeTableGenerator();
assertNull(xmlEntity.getTableGenerator());
assertNull(entityResource.getTableGenerator());
//try removing the table generator again, should get an IllegalStateException
try {
xmlEntity.removeTableGenerator();
} catch (IllegalStateException e) {
return;
}
fail("IllegalStateException not thrown");
}
public void testUpdateTableGenerator() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getTableGenerator());
assertNull(entityResource.getTableGenerator());
entityResource.setTableGenerator(OrmFactory.eINSTANCE.createTableGeneratorImpl());
assertNotNull(xmlEntity.getTableGenerator());
assertNotNull(entityResource.getTableGenerator());
entityResource.setTableGenerator(null);
assertNull(xmlEntity.getTableGenerator());
assertNull(entityResource.getTableGenerator());
}
public void testUpdateDiscriminatorColumn() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNotNull(xmlEntity.getDiscriminatorColumn());
entityResource.setDiscriminatorColumn(OrmFactory.eINSTANCE.createDiscriminatorColumn());
entityResource.getDiscriminatorColumn().setName("FOO");
assertEquals("FOO", xmlEntity.getDiscriminatorColumn().getSpecifiedName());
assertEquals("FOO", entityResource.getDiscriminatorColumn().getName());
entityResource.getDiscriminatorColumn().setName(null);
assertNull(xmlEntity.getDiscriminatorColumn().getSpecifiedName());
assertNull(entityResource.getDiscriminatorColumn().getName());
entityResource.setDiscriminatorColumn(null);
assertNotNull(xmlEntity.getDiscriminatorColumn());
}
public void testUpdateDiscriminatorValue() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getSpecifiedDiscriminatorValue());
assertNull(entityResource.getDiscriminatorValue());
entityResource.setDiscriminatorValue("FOO");
assertEquals("FOO", xmlEntity.getSpecifiedDiscriminatorValue());
assertEquals("FOO", entityResource.getDiscriminatorValue());
entityResource.setDiscriminatorValue(null);
assertNull(xmlEntity.getSpecifiedDiscriminatorValue());
assertNull(entityResource.getDiscriminatorValue());
}
public void testModifyDiscriminatorValue() throws Exception {
XmlPersistentType xmlPersistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
XmlEntity xmlEntity = (XmlEntity) xmlPersistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getSpecifiedDiscriminatorValue());
assertNull(entityResource.getDiscriminatorValue());
xmlEntity.setSpecifiedDiscriminatorValue("FOO");
assertEquals("FOO", xmlEntity.getSpecifiedDiscriminatorValue());
assertEquals("FOO", entityResource.getDiscriminatorValue());
xmlEntity.setSpecifiedDiscriminatorValue(null);
assertNull(xmlEntity.getSpecifiedDiscriminatorValue());
assertNull(entityResource.getDiscriminatorValue());
}
public void testAddSpecifiedPrimaryKeyJoinColumn() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
XmlPrimaryKeyJoinColumn primaryKeyJoinColumn = xmlEntity.addSpecifiedPrimaryKeyJoinColumn(0);
primaryKeyJoinColumn.setSpecifiedName("FOO");
assertEquals("FOO", entityResource.getPrimaryKeyJoinColumns().get(0).getName());
XmlPrimaryKeyJoinColumn primaryKeyJoinColumn2 = xmlEntity.addSpecifiedPrimaryKeyJoinColumn(0);
primaryKeyJoinColumn2.setSpecifiedName("BAR");
assertEquals("BAR", entityResource.getPrimaryKeyJoinColumns().get(0).getName());
assertEquals("FOO", entityResource.getPrimaryKeyJoinColumns().get(1).getName());
XmlPrimaryKeyJoinColumn primaryKeyJoinColumn3 = xmlEntity.addSpecifiedPrimaryKeyJoinColumn(1);
primaryKeyJoinColumn3.setSpecifiedName("BAZ");
assertEquals("BAR", entityResource.getPrimaryKeyJoinColumns().get(0).getName());
assertEquals("BAZ", entityResource.getPrimaryKeyJoinColumns().get(1).getName());
assertEquals("FOO", entityResource.getPrimaryKeyJoinColumns().get(2).getName());
ListIterator<XmlPrimaryKeyJoinColumn> primaryKeyJoinColumns = xmlEntity.specifiedPrimaryKeyJoinColumns();
assertEquals(primaryKeyJoinColumn2, primaryKeyJoinColumns.next());
assertEquals(primaryKeyJoinColumn3, primaryKeyJoinColumns.next());
assertEquals(primaryKeyJoinColumn, primaryKeyJoinColumns.next());
primaryKeyJoinColumns = xmlEntity.specifiedPrimaryKeyJoinColumns();
assertEquals("BAR", primaryKeyJoinColumns.next().getName());
assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
assertEquals("FOO", primaryKeyJoinColumns.next().getName());
}
public void testRemoveSpecifiedPrimaryKeyJoinColumn() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
xmlEntity.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
xmlEntity.addSpecifiedPrimaryKeyJoinColumn(1).setSpecifiedName("BAR");
xmlEntity.addSpecifiedPrimaryKeyJoinColumn(2).setSpecifiedName("BAZ");
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertEquals(3, entityResource.getPrimaryKeyJoinColumns().size());
xmlEntity.removeSpecifiedPrimaryKeyJoinColumn(0);
assertEquals(2, entityResource.getPrimaryKeyJoinColumns().size());
assertEquals("BAR", entityResource.getPrimaryKeyJoinColumns().get(0).getName());
assertEquals("BAZ", entityResource.getPrimaryKeyJoinColumns().get(1).getName());
xmlEntity.removeSpecifiedPrimaryKeyJoinColumn(0);
assertEquals(1, entityResource.getPrimaryKeyJoinColumns().size());
assertEquals("BAZ", entityResource.getPrimaryKeyJoinColumns().get(0).getName());
xmlEntity.removeSpecifiedPrimaryKeyJoinColumn(0);
assertEquals(0, entityResource.getPrimaryKeyJoinColumns().size());
}
public void testMoveSpecifiedPrimaryKeyJoinColumn() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
xmlEntity.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
xmlEntity.addSpecifiedPrimaryKeyJoinColumn(1).setSpecifiedName("BAR");
xmlEntity.addSpecifiedPrimaryKeyJoinColumn(2).setSpecifiedName("BAZ");
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertEquals(3, entityResource.getPrimaryKeyJoinColumns().size());
xmlEntity.moveSpecifiedPrimaryKeyJoinColumn(2, 0);
ListIterator<XmlPrimaryKeyJoinColumn> primaryKeyJoinColumns = xmlEntity.specifiedPrimaryKeyJoinColumns();
assertEquals("BAR", primaryKeyJoinColumns.next().getName());
assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
assertEquals("FOO", primaryKeyJoinColumns.next().getName());
assertEquals("BAR", entityResource.getPrimaryKeyJoinColumns().get(0).getName());
assertEquals("BAZ", entityResource.getPrimaryKeyJoinColumns().get(1).getName());
assertEquals("FOO", entityResource.getPrimaryKeyJoinColumns().get(2).getName());
xmlEntity.moveSpecifiedPrimaryKeyJoinColumn(0, 1);
primaryKeyJoinColumns = xmlEntity.specifiedPrimaryKeyJoinColumns();
assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
assertEquals("BAR", primaryKeyJoinColumns.next().getName());
assertEquals("FOO", primaryKeyJoinColumns.next().getName());
assertEquals("BAZ", entityResource.getPrimaryKeyJoinColumns().get(0).getName());
assertEquals("BAR", entityResource.getPrimaryKeyJoinColumns().get(1).getName());
assertEquals("FOO", entityResource.getPrimaryKeyJoinColumns().get(2).getName());
}
public void testUpdatePrimaryKeyJoinColumns() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
entityResource.getPrimaryKeyJoinColumns().add(OrmFactory.eINSTANCE.createPrimaryKeyJoinColumn());
entityResource.getPrimaryKeyJoinColumns().add(OrmFactory.eINSTANCE.createPrimaryKeyJoinColumn());
entityResource.getPrimaryKeyJoinColumns().add(OrmFactory.eINSTANCE.createPrimaryKeyJoinColumn());
entityResource.getPrimaryKeyJoinColumns().get(0).setName("FOO");
entityResource.getPrimaryKeyJoinColumns().get(1).setName("BAR");
entityResource.getPrimaryKeyJoinColumns().get(2).setName("BAZ");
ListIterator<XmlPrimaryKeyJoinColumn> primaryKeyJoinColumns = xmlEntity.specifiedPrimaryKeyJoinColumns();
assertEquals("FOO", primaryKeyJoinColumns.next().getName());
assertEquals("BAR", primaryKeyJoinColumns.next().getName());
assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
assertFalse(primaryKeyJoinColumns.hasNext());
entityResource.getPrimaryKeyJoinColumns().move(2, 0);
primaryKeyJoinColumns = xmlEntity.specifiedPrimaryKeyJoinColumns();
assertEquals("BAR", primaryKeyJoinColumns.next().getName());
assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
assertEquals("FOO", primaryKeyJoinColumns.next().getName());
assertFalse(primaryKeyJoinColumns.hasNext());
entityResource.getPrimaryKeyJoinColumns().move(0, 1);
primaryKeyJoinColumns = xmlEntity.specifiedPrimaryKeyJoinColumns();
assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
assertEquals("BAR", primaryKeyJoinColumns.next().getName());
assertEquals("FOO", primaryKeyJoinColumns.next().getName());
assertFalse(primaryKeyJoinColumns.hasNext());
entityResource.getPrimaryKeyJoinColumns().remove(1);
primaryKeyJoinColumns = xmlEntity.specifiedPrimaryKeyJoinColumns();
assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
assertEquals("FOO", primaryKeyJoinColumns.next().getName());
assertFalse(primaryKeyJoinColumns.hasNext());
entityResource.getPrimaryKeyJoinColumns().remove(1);
primaryKeyJoinColumns = xmlEntity.specifiedPrimaryKeyJoinColumns();
assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
assertFalse(primaryKeyJoinColumns.hasNext());
entityResource.getPrimaryKeyJoinColumns().remove(0);
assertFalse(xmlEntity.specifiedPrimaryKeyJoinColumns().hasNext());
}
public void testAddSpecifiedAttributeOverride() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
XmlAttributeOverride attributeOverride = xmlEntity.addSpecifiedAttributeOverride(0);
attributeOverride.setName("FOO");
assertEquals("FOO", entityResource.getAttributeOverrides().get(0).getName());
XmlAttributeOverride attributeOverride2 = xmlEntity.addSpecifiedAttributeOverride(0);
attributeOverride2.setName("BAR");
assertEquals("BAR", entityResource.getAttributeOverrides().get(0).getName());
assertEquals("FOO", entityResource.getAttributeOverrides().get(1).getName());
XmlAttributeOverride attributeOverride3 = xmlEntity.addSpecifiedAttributeOverride(1);
attributeOverride3.setName("BAZ");
assertEquals("BAR", entityResource.getAttributeOverrides().get(0).getName());
assertEquals("BAZ", entityResource.getAttributeOverrides().get(1).getName());
assertEquals("FOO", entityResource.getAttributeOverrides().get(2).getName());
ListIterator<XmlAttributeOverride> attributeOverrides = xmlEntity.specifiedAttributeOverrides();
assertEquals(attributeOverride2, attributeOverrides.next());
assertEquals(attributeOverride3, attributeOverrides.next());
assertEquals(attributeOverride, attributeOverrides.next());
attributeOverrides = xmlEntity.specifiedAttributeOverrides();
assertEquals("BAR", attributeOverrides.next().getName());
assertEquals("BAZ", attributeOverrides.next().getName());
assertEquals("FOO", attributeOverrides.next().getName());
}
public void testRemoveSpecifiedAttributeOverride() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
xmlEntity.addSpecifiedAttributeOverride(0).setName("FOO");
xmlEntity.addSpecifiedAttributeOverride(1).setName("BAR");
xmlEntity.addSpecifiedAttributeOverride(2).setName("BAZ");
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertEquals(3, entityResource.getAttributeOverrides().size());
xmlEntity.removeSpecifiedAttributeOverride(0);
assertEquals(2, entityResource.getAttributeOverrides().size());
assertEquals("BAR", entityResource.getAttributeOverrides().get(0).getName());
assertEquals("BAZ", entityResource.getAttributeOverrides().get(1).getName());
xmlEntity.removeSpecifiedAttributeOverride(0);
assertEquals(1, entityResource.getAttributeOverrides().size());
assertEquals("BAZ", entityResource.getAttributeOverrides().get(0).getName());
xmlEntity.removeSpecifiedAttributeOverride(0);
assertEquals(0, entityResource.getAttributeOverrides().size());
}
public void testMoveSpecifiedAttributeOverride() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
xmlEntity.addSpecifiedAttributeOverride(0).setName("FOO");
xmlEntity.addSpecifiedAttributeOverride(1).setName("BAR");
xmlEntity.addSpecifiedAttributeOverride(2).setName("BAZ");
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertEquals(3, entityResource.getAttributeOverrides().size());
xmlEntity.moveSpecifiedAttributeOverride(2, 0);
ListIterator<XmlAttributeOverride> attributeOverrides = xmlEntity.specifiedAttributeOverrides();
assertEquals("BAR", attributeOverrides.next().getName());
assertEquals("BAZ", attributeOverrides.next().getName());
assertEquals("FOO", attributeOverrides.next().getName());
assertEquals("BAR", entityResource.getAttributeOverrides().get(0).getName());
assertEquals("BAZ", entityResource.getAttributeOverrides().get(1).getName());
assertEquals("FOO", entityResource.getAttributeOverrides().get(2).getName());
xmlEntity.moveSpecifiedAttributeOverride(0, 1);
attributeOverrides = xmlEntity.specifiedAttributeOverrides();
assertEquals("BAZ", attributeOverrides.next().getName());
assertEquals("BAR", attributeOverrides.next().getName());
assertEquals("FOO", attributeOverrides.next().getName());
assertEquals("BAZ", entityResource.getAttributeOverrides().get(0).getName());
assertEquals("BAR", entityResource.getAttributeOverrides().get(1).getName());
assertEquals("FOO", entityResource.getAttributeOverrides().get(2).getName());
}
public void testUpdateAttributeOverrides() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
entityResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createAttributeOverrideImpl());
entityResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createAttributeOverrideImpl());
entityResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createAttributeOverrideImpl());
entityResource.getAttributeOverrides().get(0).setName("FOO");
entityResource.getAttributeOverrides().get(1).setName("BAR");
entityResource.getAttributeOverrides().get(2).setName("BAZ");
ListIterator<XmlAttributeOverride> attributeOverrides = xmlEntity.specifiedAttributeOverrides();
assertEquals("FOO", attributeOverrides.next().getName());
assertEquals("BAR", attributeOverrides.next().getName());
assertEquals("BAZ", attributeOverrides.next().getName());
assertFalse(attributeOverrides.hasNext());
entityResource.getAttributeOverrides().move(2, 0);
attributeOverrides = xmlEntity.specifiedAttributeOverrides();
assertEquals("BAR", attributeOverrides.next().getName());
assertEquals("BAZ", attributeOverrides.next().getName());
assertEquals("FOO", attributeOverrides.next().getName());
assertFalse(attributeOverrides.hasNext());
entityResource.getAttributeOverrides().move(0, 1);
attributeOverrides = xmlEntity.specifiedAttributeOverrides();
assertEquals("BAZ", attributeOverrides.next().getName());
assertEquals("BAR", attributeOverrides.next().getName());
assertEquals("FOO", attributeOverrides.next().getName());
assertFalse(attributeOverrides.hasNext());
entityResource.getAttributeOverrides().remove(1);
attributeOverrides = xmlEntity.specifiedAttributeOverrides();
assertEquals("BAZ", attributeOverrides.next().getName());
assertEquals("FOO", attributeOverrides.next().getName());
assertFalse(attributeOverrides.hasNext());
entityResource.getAttributeOverrides().remove(1);
attributeOverrides = xmlEntity.specifiedAttributeOverrides();
assertEquals("BAZ", attributeOverrides.next().getName());
assertFalse(attributeOverrides.hasNext());
entityResource.getAttributeOverrides().remove(0);
assertFalse(xmlEntity.specifiedAttributeOverrides().hasNext());
}
public void testAddSpecifiedAssociationOverride() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
XmlAssociationOverride associationOverride = xmlEntity.addSpecifiedAssociationOverride(0);
associationOverride.setName("FOO");
assertEquals("FOO", entityResource.getAssociationOverrides().get(0).getName());
XmlAssociationOverride associationOverride2 = xmlEntity.addSpecifiedAssociationOverride(0);
associationOverride2.setName("BAR");
assertEquals("BAR", entityResource.getAssociationOverrides().get(0).getName());
assertEquals("FOO", entityResource.getAssociationOverrides().get(1).getName());
XmlAssociationOverride associationOverride3 = xmlEntity.addSpecifiedAssociationOverride(1);
associationOverride3.setName("BAZ");
assertEquals("BAR", entityResource.getAssociationOverrides().get(0).getName());
assertEquals("BAZ", entityResource.getAssociationOverrides().get(1).getName());
assertEquals("FOO", entityResource.getAssociationOverrides().get(2).getName());
ListIterator<XmlAssociationOverride> associationOverrides = xmlEntity.specifiedAssociationOverrides();
assertEquals(associationOverride2, associationOverrides.next());
assertEquals(associationOverride3, associationOverrides.next());
assertEquals(associationOverride, associationOverrides.next());
associationOverrides = xmlEntity.specifiedAssociationOverrides();
assertEquals("BAR", associationOverrides.next().getName());
assertEquals("BAZ", associationOverrides.next().getName());
assertEquals("FOO", associationOverrides.next().getName());
}
public void testRemoveSpecifiedAssociationOverride() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
xmlEntity.addSpecifiedAssociationOverride(0).setName("FOO");
xmlEntity.addSpecifiedAssociationOverride(1).setName("BAR");
xmlEntity.addSpecifiedAssociationOverride(2).setName("BAZ");
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertEquals(3, entityResource.getAssociationOverrides().size());
xmlEntity.removeSpecifiedAssociationOverride(0);
assertEquals(2, entityResource.getAssociationOverrides().size());
assertEquals("BAR", entityResource.getAssociationOverrides().get(0).getName());
assertEquals("BAZ", entityResource.getAssociationOverrides().get(1).getName());
xmlEntity.removeSpecifiedAssociationOverride(0);
assertEquals(1, entityResource.getAssociationOverrides().size());
assertEquals("BAZ", entityResource.getAssociationOverrides().get(0).getName());
xmlEntity.removeSpecifiedAssociationOverride(0);
assertEquals(0, entityResource.getAssociationOverrides().size());
}
public void testMoveSpecifiedAssociationOverride() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
xmlEntity.addSpecifiedAssociationOverride(0).setName("FOO");
xmlEntity.addSpecifiedAssociationOverride(1).setName("BAR");
xmlEntity.addSpecifiedAssociationOverride(2).setName("BAZ");
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertEquals(3, entityResource.getAssociationOverrides().size());
xmlEntity.moveSpecifiedAssociationOverride(2, 0);
ListIterator<XmlAssociationOverride> associationOverrides = xmlEntity.specifiedAssociationOverrides();
assertEquals("BAR", associationOverrides.next().getName());
assertEquals("BAZ", associationOverrides.next().getName());
assertEquals("FOO", associationOverrides.next().getName());
assertEquals("BAR", entityResource.getAssociationOverrides().get(0).getName());
assertEquals("BAZ", entityResource.getAssociationOverrides().get(1).getName());
assertEquals("FOO", entityResource.getAssociationOverrides().get(2).getName());
xmlEntity.moveSpecifiedAssociationOverride(0, 1);
associationOverrides = xmlEntity.specifiedAssociationOverrides();
assertEquals("BAZ", associationOverrides.next().getName());
assertEquals("BAR", associationOverrides.next().getName());
assertEquals("FOO", associationOverrides.next().getName());
assertEquals("BAZ", entityResource.getAssociationOverrides().get(0).getName());
assertEquals("BAR", entityResource.getAssociationOverrides().get(1).getName());
assertEquals("FOO", entityResource.getAssociationOverrides().get(2).getName());
}
public void testUpdateAssociationOverrides() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
entityResource.getAssociationOverrides().add(OrmFactory.eINSTANCE.createAssociationOverride());
entityResource.getAssociationOverrides().add(OrmFactory.eINSTANCE.createAssociationOverride());
entityResource.getAssociationOverrides().add(OrmFactory.eINSTANCE.createAssociationOverride());
entityResource.getAssociationOverrides().get(0).setName("FOO");
entityResource.getAssociationOverrides().get(1).setName("BAR");
entityResource.getAssociationOverrides().get(2).setName("BAZ");
ListIterator<XmlAssociationOverride> associationOverrides = xmlEntity.specifiedAssociationOverrides();
assertEquals("FOO", associationOverrides.next().getName());
assertEquals("BAR", associationOverrides.next().getName());
assertEquals("BAZ", associationOverrides.next().getName());
assertFalse(associationOverrides.hasNext());
entityResource.getAssociationOverrides().move(2, 0);
associationOverrides = xmlEntity.specifiedAssociationOverrides();
assertEquals("BAR", associationOverrides.next().getName());
assertEquals("BAZ", associationOverrides.next().getName());
assertEquals("FOO", associationOverrides.next().getName());
assertFalse(associationOverrides.hasNext());
entityResource.getAssociationOverrides().move(0, 1);
associationOverrides = xmlEntity.specifiedAssociationOverrides();
assertEquals("BAZ", associationOverrides.next().getName());
assertEquals("BAR", associationOverrides.next().getName());
assertEquals("FOO", associationOverrides.next().getName());
assertFalse(associationOverrides.hasNext());
entityResource.getAssociationOverrides().remove(1);
associationOverrides = xmlEntity.specifiedAssociationOverrides();
assertEquals("BAZ", associationOverrides.next().getName());
assertEquals("FOO", associationOverrides.next().getName());
assertFalse(associationOverrides.hasNext());
entityResource.getAssociationOverrides().remove(1);
associationOverrides = xmlEntity.specifiedAssociationOverrides();
assertEquals("BAZ", associationOverrides.next().getName());
assertFalse(associationOverrides.hasNext());
entityResource.getAssociationOverrides().remove(0);
assertFalse(xmlEntity.specifiedAssociationOverrides().hasNext());
}
public void testAddNamedQuery() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
XmlNamedQuery namedQuery = xmlEntity.addNamedQuery(0);
namedQuery.setName("FOO");
assertEquals("FOO", entityResource.getNamedQueries().get(0).getName());
XmlNamedQuery namedQuery2 = xmlEntity.addNamedQuery(0);
namedQuery2.setName("BAR");
assertEquals("BAR", entityResource.getNamedQueries().get(0).getName());
assertEquals("FOO", entityResource.getNamedQueries().get(1).getName());
XmlNamedQuery namedQuery3 = xmlEntity.addNamedQuery(1);
namedQuery3.setName("BAZ");
assertEquals("BAR", entityResource.getNamedQueries().get(0).getName());
assertEquals("BAZ", entityResource.getNamedQueries().get(1).getName());
assertEquals("FOO", entityResource.getNamedQueries().get(2).getName());
ListIterator<XmlNamedQuery> namedQuerys = xmlEntity.namedQueries();
assertEquals(namedQuery2, namedQuerys.next());
assertEquals(namedQuery3, namedQuerys.next());
assertEquals(namedQuery, namedQuerys.next());
namedQuerys = xmlEntity.namedQueries();
assertEquals("BAR", namedQuerys.next().getName());
assertEquals("BAZ", namedQuerys.next().getName());
assertEquals("FOO", namedQuerys.next().getName());
}
public void testRemoveNamedQuery() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
xmlEntity.addNamedQuery(0).setName("FOO");
xmlEntity.addNamedQuery(1).setName("BAR");
xmlEntity.addNamedQuery(2).setName("BAZ");
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertEquals(3, entityResource.getNamedQueries().size());
xmlEntity.removeNamedQuery(0);
assertEquals(2, entityResource.getNamedQueries().size());
assertEquals("BAR", entityResource.getNamedQueries().get(0).getName());
assertEquals("BAZ", entityResource.getNamedQueries().get(1).getName());
xmlEntity.removeNamedQuery(0);
assertEquals(1, entityResource.getNamedQueries().size());
assertEquals("BAZ", entityResource.getNamedQueries().get(0).getName());
xmlEntity.removeNamedQuery(0);
assertEquals(0, entityResource.getNamedQueries().size());
}
public void testMoveNamedQuery() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
xmlEntity.addNamedQuery(0).setName("FOO");
xmlEntity.addNamedQuery(1).setName("BAR");
xmlEntity.addNamedQuery(2).setName("BAZ");
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertEquals(3, entityResource.getNamedQueries().size());
xmlEntity.moveNamedQuery(2, 0);
ListIterator<XmlNamedQuery> namedQuerys = xmlEntity.namedQueries();
assertEquals("BAR", namedQuerys.next().getName());
assertEquals("BAZ", namedQuerys.next().getName());
assertEquals("FOO", namedQuerys.next().getName());
assertEquals("BAR", entityResource.getNamedQueries().get(0).getName());
assertEquals("BAZ", entityResource.getNamedQueries().get(1).getName());
assertEquals("FOO", entityResource.getNamedQueries().get(2).getName());
xmlEntity.moveNamedQuery(0, 1);
namedQuerys = xmlEntity.namedQueries();
assertEquals("BAZ", namedQuerys.next().getName());
assertEquals("BAR", namedQuerys.next().getName());
assertEquals("FOO", namedQuerys.next().getName());
assertEquals("BAZ", entityResource.getNamedQueries().get(0).getName());
assertEquals("BAR", entityResource.getNamedQueries().get(1).getName());
assertEquals("FOO", entityResource.getNamedQueries().get(2).getName());
}
public void testUpdateNamedQueries() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
entityResource.getNamedQueries().add(OrmFactory.eINSTANCE.createNamedQuery());
entityResource.getNamedQueries().add(OrmFactory.eINSTANCE.createNamedQuery());
entityResource.getNamedQueries().add(OrmFactory.eINSTANCE.createNamedQuery());
entityResource.getNamedQueries().get(0).setName("FOO");
entityResource.getNamedQueries().get(1).setName("BAR");
entityResource.getNamedQueries().get(2).setName("BAZ");
ListIterator<XmlNamedQuery> namedQuerys = xmlEntity.namedQueries();
assertEquals("FOO", namedQuerys.next().getName());
assertEquals("BAR", namedQuerys.next().getName());
assertEquals("BAZ", namedQuerys.next().getName());
assertFalse(namedQuerys.hasNext());
entityResource.getNamedQueries().move(2, 0);
namedQuerys = xmlEntity.namedQueries();
assertEquals("BAR", namedQuerys.next().getName());
assertEquals("BAZ", namedQuerys.next().getName());
assertEquals("FOO", namedQuerys.next().getName());
assertFalse(namedQuerys.hasNext());
entityResource.getNamedQueries().move(0, 1);
namedQuerys = xmlEntity.namedQueries();
assertEquals("BAZ", namedQuerys.next().getName());
assertEquals("BAR", namedQuerys.next().getName());
assertEquals("FOO", namedQuerys.next().getName());
assertFalse(namedQuerys.hasNext());
entityResource.getNamedQueries().remove(1);
namedQuerys = xmlEntity.namedQueries();
assertEquals("BAZ", namedQuerys.next().getName());
assertEquals("FOO", namedQuerys.next().getName());
assertFalse(namedQuerys.hasNext());
entityResource.getNamedQueries().remove(1);
namedQuerys = xmlEntity.namedQueries();
assertEquals("BAZ", namedQuerys.next().getName());
assertFalse(namedQuerys.hasNext());
entityResource.getNamedQueries().remove(0);
assertFalse(xmlEntity.namedQueries().hasNext());
}
public void testAddNamedNativeQuery() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
XmlNamedNativeQuery namedNativeQuery = xmlEntity.addNamedNativeQuery(0);
namedNativeQuery.setName("FOO");
assertEquals("FOO", entityResource.getNamedNativeQueries().get(0).getName());
XmlNamedNativeQuery namedNativeQuery2 = xmlEntity.addNamedNativeQuery(0);
namedNativeQuery2.setName("BAR");
assertEquals("BAR", entityResource.getNamedNativeQueries().get(0).getName());
assertEquals("FOO", entityResource.getNamedNativeQueries().get(1).getName());
XmlNamedNativeQuery namedNativeQuery3 = xmlEntity.addNamedNativeQuery(1);
namedNativeQuery3.setName("BAZ");
assertEquals("BAR", entityResource.getNamedNativeQueries().get(0).getName());
assertEquals("BAZ", entityResource.getNamedNativeQueries().get(1).getName());
assertEquals("FOO", entityResource.getNamedNativeQueries().get(2).getName());
ListIterator<XmlNamedNativeQuery> namedNativeQuerys = xmlEntity.namedNativeQueries();
assertEquals(namedNativeQuery2, namedNativeQuerys.next());
assertEquals(namedNativeQuery3, namedNativeQuerys.next());
assertEquals(namedNativeQuery, namedNativeQuerys.next());
namedNativeQuerys = xmlEntity.namedNativeQueries();
assertEquals("BAR", namedNativeQuerys.next().getName());
assertEquals("BAZ", namedNativeQuerys.next().getName());
assertEquals("FOO", namedNativeQuerys.next().getName());
}
public void testRemoveNamedNativeQuery() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
xmlEntity.addNamedNativeQuery(0).setName("FOO");
xmlEntity.addNamedNativeQuery(1).setName("BAR");
xmlEntity.addNamedNativeQuery(2).setName("BAZ");
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertEquals(3, entityResource.getNamedNativeQueries().size());
xmlEntity.removeNamedNativeQuery(0);
assertEquals(2, entityResource.getNamedNativeQueries().size());
assertEquals("BAR", entityResource.getNamedNativeQueries().get(0).getName());
assertEquals("BAZ", entityResource.getNamedNativeQueries().get(1).getName());
xmlEntity.removeNamedNativeQuery(0);
assertEquals(1, entityResource.getNamedNativeQueries().size());
assertEquals("BAZ", entityResource.getNamedNativeQueries().get(0).getName());
xmlEntity.removeNamedNativeQuery(0);
assertEquals(0, entityResource.getNamedNativeQueries().size());
}
public void testMoveNamedNativeQuery() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
xmlEntity.addNamedNativeQuery(0).setName("FOO");
xmlEntity.addNamedNativeQuery(1).setName("BAR");
xmlEntity.addNamedNativeQuery(2).setName("BAZ");
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertEquals(3, entityResource.getNamedNativeQueries().size());
xmlEntity.moveNamedNativeQuery(2, 0);
ListIterator<XmlNamedNativeQuery> namedNativeQuerys = xmlEntity.namedNativeQueries();
assertEquals("BAR", namedNativeQuerys.next().getName());
assertEquals("BAZ", namedNativeQuerys.next().getName());
assertEquals("FOO", namedNativeQuerys.next().getName());
assertEquals("BAR", entityResource.getNamedNativeQueries().get(0).getName());
assertEquals("BAZ", entityResource.getNamedNativeQueries().get(1).getName());
assertEquals("FOO", entityResource.getNamedNativeQueries().get(2).getName());
xmlEntity.moveNamedNativeQuery(0, 1);
namedNativeQuerys = xmlEntity.namedNativeQueries();
assertEquals("BAZ", namedNativeQuerys.next().getName());
assertEquals("BAR", namedNativeQuerys.next().getName());
assertEquals("FOO", namedNativeQuerys.next().getName());
assertEquals("BAZ", entityResource.getNamedNativeQueries().get(0).getName());
assertEquals("BAR", entityResource.getNamedNativeQueries().get(1).getName());
assertEquals("FOO", entityResource.getNamedNativeQueries().get(2).getName());
}
public void testUpdateNamedNativeQueries() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
entityResource.getNamedNativeQueries().add(OrmFactory.eINSTANCE.createNamedNativeQuery());
entityResource.getNamedNativeQueries().add(OrmFactory.eINSTANCE.createNamedNativeQuery());
entityResource.getNamedNativeQueries().add(OrmFactory.eINSTANCE.createNamedNativeQuery());
entityResource.getNamedNativeQueries().get(0).setName("FOO");
entityResource.getNamedNativeQueries().get(1).setName("BAR");
entityResource.getNamedNativeQueries().get(2).setName("BAZ");
ListIterator<XmlNamedNativeQuery> namedNativeQuerys = xmlEntity.namedNativeQueries();
assertEquals("FOO", namedNativeQuerys.next().getName());
assertEquals("BAR", namedNativeQuerys.next().getName());
assertEquals("BAZ", namedNativeQuerys.next().getName());
assertFalse(namedNativeQuerys.hasNext());
entityResource.getNamedNativeQueries().move(2, 0);
namedNativeQuerys = xmlEntity.namedNativeQueries();
assertEquals("BAR", namedNativeQuerys.next().getName());
assertEquals("BAZ", namedNativeQuerys.next().getName());
assertEquals("FOO", namedNativeQuerys.next().getName());
assertFalse(namedNativeQuerys.hasNext());
entityResource.getNamedNativeQueries().move(0, 1);
namedNativeQuerys = xmlEntity.namedNativeQueries();
assertEquals("BAZ", namedNativeQuerys.next().getName());
assertEquals("BAR", namedNativeQuerys.next().getName());
assertEquals("FOO", namedNativeQuerys.next().getName());
assertFalse(namedNativeQuerys.hasNext());
entityResource.getNamedNativeQueries().remove(1);
namedNativeQuerys = xmlEntity.namedNativeQueries();
assertEquals("BAZ", namedNativeQuerys.next().getName());
assertEquals("FOO", namedNativeQuerys.next().getName());
assertFalse(namedNativeQuerys.hasNext());
entityResource.getNamedNativeQueries().remove(1);
namedNativeQuerys = xmlEntity.namedNativeQueries();
assertEquals("BAZ", namedNativeQuerys.next().getName());
assertFalse(namedNativeQuerys.hasNext());
entityResource.getNamedNativeQueries().remove(0);
assertFalse(xmlEntity.namedNativeQueries().hasNext());
}
public void testUpdateIdClass() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getIdClass());
assertNull(entityResource.getIdClass());
entityResource.setIdClass(OrmFactory.eINSTANCE.createIdClass());
assertNull(xmlEntity.getIdClass());
assertNotNull(entityResource.getIdClass());
entityResource.getIdClass().setClassName("model.Foo");
assertEquals("model.Foo", xmlEntity.getIdClass());
assertEquals("model.Foo", entityResource.getIdClass().getClassName());
//test setting @IdClass value to null, id-class tag is not removed
entityResource.getIdClass().setClassName(null);
assertNull(xmlEntity.getIdClass());
assertNotNull(entityResource.getIdClass());
//reset @IdClass value and then remove id-class tag
entityResource.setIdClass(OrmFactory.eINSTANCE.createIdClass());
entityResource.getIdClass().setClassName("model.Foo");
entityResource.setIdClass(null);
assertNull(xmlEntity.getIdClass());
assertNull(entityResource.getIdClass());
}
public void testModifyIdClass() throws Exception {
XmlPersistentType persistentType = entityMappings().addXmlPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity xmlEntity = (XmlEntity) persistentType.getMapping();
Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
assertNull(xmlEntity.getIdClass());
assertNull(entityResource.getIdClass());
xmlEntity.setIdClass("model.Foo");
assertEquals("model.Foo", entityResource.getIdClass().getClassName());
assertEquals("model.Foo", xmlEntity.getIdClass());
xmlEntity.setIdClass(null);
assertNull(xmlEntity.getIdClass());
assertNull(entityResource.getIdClass());
}
}