Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpfullbright2010-01-20 23:52:10 +0000
committerpfullbright2010-01-20 23:52:10 +0000
commite4877a22c9139e56788c27b705d60bda5051e7ab (patch)
treef0d55bee8ca51ee857f519f2989d0c370cc5c156
parenta580e6b26e7016cb0bc9441c0015b2b7123b0003 (diff)
downloadwebtools.dali-e4877a22c9139e56788c27b705d60bda5051e7ab.tar.gz
webtools.dali-e4877a22c9139e56788c27b705d60bda5051e7ab.tar.xz
webtools.dali-e4877a22c9139e56788c27b705d60bda5051e7ab.zip
updated id class model tests
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEntityTests.java86
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaMappedSuperclassTests.java97
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEntityTests.java92
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmMappedSuperclassTests.java87
4 files changed, 257 insertions, 105 deletions
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEntityTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEntityTests.java
index 3b50ee56b1..54ce0b0c64 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEntityTests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEntityTests.java
@@ -351,6 +351,17 @@ public class JavaEntityTests extends ContextModelTestCase
}
});
}
+
+ private void createTestIdClass() throws Exception {
+ SourceWriter sourceWriter = new SourceWriter() {
+ public void appendSourceTo(StringBuilder sb) {
+ sb.append(CR);
+ sb.append("public class ").append("TestTypeId").append(" ");
+ sb.append("{}").append(CR);
+ }
+ };
+ this.javaProject.createCompilationUnit(PACKAGE_NAME, "TestTypeId.java", sourceWriter);
+ }
public void testMorphToMappedSuperclass() throws Exception {
createTestEntity();
@@ -368,7 +379,7 @@ public class JavaEntityTests extends ContextModelTestCase
entity.getDiscriminatorColumn().setSpecifiedName("BAR");
entity.getGeneratorContainer().addTableGenerator();
entity.getGeneratorContainer().addSequenceGenerator();
- entity.setIdClass("myIdClass");
+ entity.getIdClassReference().setIdClassName("myIdClass");
entity.getQueryContainer().addNamedNativeQuery(0);
entity.getQueryContainer().addNamedQuery(0);
@@ -407,7 +418,7 @@ public class JavaEntityTests extends ContextModelTestCase
entity.getDiscriminatorColumn().setSpecifiedName("BAR");
entity.getGeneratorContainer().addTableGenerator();
entity.getGeneratorContainer().addSequenceGenerator();
- entity.setIdClass("myIdClass");
+ entity.getIdClassReference().setIdClassName("myIdClass");
entity.getQueryContainer().addNamedNativeQuery(0);
entity.getQueryContainer().addNamedQuery(0);
@@ -446,7 +457,7 @@ public class JavaEntityTests extends ContextModelTestCase
entity.getDiscriminatorColumn().setSpecifiedName("BAR");
entity.getGeneratorContainer().addTableGenerator();
entity.getGeneratorContainer().addSequenceGenerator();
- entity.setIdClass("myIdClass");
+ entity.getIdClassReference().setIdClassName("myIdClass");
entity.getQueryContainer().addNamedNativeQuery(0);
entity.getQueryContainer().addNamedQuery(0);
@@ -3189,55 +3200,80 @@ public class JavaEntityTests extends ContextModelTestCase
public void testUpdateIdClass() throws Exception {
createTestEntity();
+ createTestIdClass();
addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
+
JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-
- assertNull(getJavaEntity().getIdClass());
+
+ assertNull(getJavaEntity().getIdClassReference().getIdClassName());
+ assertNull(getJavaEntity().getIdClassReference().getIdClass());
assertNull(typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME));
IdClassAnnotation idClass = (IdClassAnnotation) typeResource.addAnnotation(IdClassAnnotation.ANNOTATION_NAME);
getJpaProject().synchronizeContextModel();
- assertNull(getJavaEntity().getIdClass());
+ assertNull(getJavaEntity().getIdClassReference().getIdClassName());
assertNotNull(typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME));
- idClass.setValue("model.Foo");
+ // test setting id class name to nonexistent class. test class name is set, but class is null
+ String nonExistentIdClassName = PACKAGE_NAME + ".Foo";
+ idClass.setValue(nonExistentIdClassName);
+ getJpaProject().synchronizeContextModel();
+ assertEquals(nonExistentIdClassName, getJavaEntity().getIdClassReference().getIdClassName());
+ assertEquals(nonExistentIdClassName, ((IdClassAnnotation) typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME)).getValue());
+ assertNull(getJavaEntity().getIdClassReference().getIdClass());
+
+ // test setting id class name to existent class. test class name is set and class is not null
+ String existentIdClassName = PACKAGE_NAME + ".TestTypeId";
+ idClass.setValue(existentIdClassName);
getJpaProject().synchronizeContextModel();
- assertEquals("model.Foo", getJavaEntity().getIdClass());
- assertEquals("model.Foo", ((IdClassAnnotation) typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME)).getValue());
+ assertEquals(existentIdClassName, getJavaEntity().getIdClassReference().getIdClassName());
+ assertEquals(existentIdClassName, ((IdClassAnnotation) typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME)).getValue());
+ assertNotNull(getJavaEntity().getIdClassReference().getIdClass());
//test setting @IdClass value to null, IdClass annotation is removed
idClass.setValue(null);
getJpaProject().synchronizeContextModel();
- assertNull(getJavaEntity().getIdClass());
+ assertNull(getJavaEntity().getIdClassReference().getIdClassName());
assertNull(typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME));
+ assertNull(getJavaEntity().getIdClassReference().getIdClass());
//reset @IdClass value and then remove @IdClass
idClass = (IdClassAnnotation) typeResource.addAnnotation(IdClassAnnotation.ANNOTATION_NAME);
- idClass.setValue("model.Foo");
+ idClass.setValue(existentIdClassName);
typeResource.removeAnnotation(IdClassAnnotation.ANNOTATION_NAME);
getJpaProject().synchronizeContextModel();
-
- assertNull(getJavaEntity().getIdClass());
- assertNull(typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME));
+ assertNull(getJavaEntity().getIdClassReference().getIdClassName());
+ assertNull(typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME));
+ assertNull(getJavaEntity().getIdClassReference().getIdClass());
}
public void testModifyIdClass() throws Exception {
createTestEntity();
+ createTestIdClass();
addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
+
JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-
- assertNull(getJavaEntity().getIdClass());
- assertNull(typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME));
-
- getJavaEntity().setIdClass("model.Foo");
- assertEquals("model.Foo", ((IdClassAnnotation) typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME)).getValue());
- assertEquals("model.Foo", getJavaEntity().getIdClass());
- getJavaEntity().setIdClass(null);
- assertNull(getJavaEntity().getIdClass());
+ assertNull(getJavaEntity().getIdClassReference().getIdClassName());
+ assertNull(typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME));
+ assertNull(getJavaEntity().getIdClassReference().getIdClass());
+
+ String nonExistentIdClassName = PACKAGE_NAME + ".Foo";
+ getJavaEntity().getIdClassReference().setIdClassName(nonExistentIdClassName);
+ assertEquals(nonExistentIdClassName, ((IdClassAnnotation) typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME)).getValue());
+ assertEquals(nonExistentIdClassName, getJavaEntity().getIdClassReference().getIdClassName());
+ assertNull(getJavaEntity().getIdClassReference().getIdClass());
+
+ String existentIdClassName = PACKAGE_NAME + ".TestTypeId";
+ getJavaEntity().getIdClassReference().setIdClassName(existentIdClassName);
+ assertEquals(existentIdClassName, ((IdClassAnnotation) typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME)).getValue());
+ assertEquals(existentIdClassName, getJavaEntity().getIdClassReference().getIdClassName());
+ assertNotNull(getJavaEntity().getIdClassReference().getIdClass());
+
+ getJavaEntity().getIdClassReference().setIdClassName(null);
+ assertNull(getJavaEntity().getIdClassReference().getIdClassName());
assertNull(typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME));
+ assertNull(getJavaEntity().getIdClassReference().getIdClass());
}
public void testGetPrimaryKeyColumnNameWithAttributeOverride() throws Exception {
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaMappedSuperclassTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaMappedSuperclassTests.java
index a595c5b2f7..3b1e543035 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaMappedSuperclassTests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaMappedSuperclassTests.java
@@ -14,6 +14,7 @@ import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.context.Embeddable;
import org.eclipse.jpt.core.context.Entity;
+import org.eclipse.jpt.core.context.IdClassReference;
import org.eclipse.jpt.core.context.MappedSuperclass;
import org.eclipse.jpt.core.internal.context.java.JavaNullTypeMapping;
import org.eclipse.jpt.core.resource.java.IdClassAnnotation;
@@ -21,10 +22,15 @@ import org.eclipse.jpt.core.resource.java.JPA;
import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
import org.eclipse.jpt.core.resource.java.MappedSuperclassAnnotation;
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 JavaMappedSuperclassTests extends ContextModelTestCase
{
+ public JavaMappedSuperclassTests(String name) {
+ super(name);
+ }
+
private ICompilationUnit createTestMappedSuperclass() throws Exception {
return this.createTestType(new DefaultAnnotationWriter() {
@@ -38,10 +44,16 @@ public class JavaMappedSuperclassTests extends ContextModelTestCase
}
});
}
-
-
- public JavaMappedSuperclassTests(String name) {
- super(name);
+
+ private void createTestIdClass() throws Exception {
+ SourceWriter sourceWriter = new SourceWriter() {
+ public void appendSourceTo(StringBuilder sb) {
+ sb.append(CR);
+ sb.append("public class ").append("TestTypeId").append(" ");
+ sb.append("{}").append(CR);
+ }
+ };
+ this.javaProject.createCompilationUnit(PACKAGE_NAME, "TestTypeId.java", sourceWriter);
}
public void testMorphToEntity() throws Exception {
@@ -49,7 +61,7 @@ public class JavaMappedSuperclassTests extends ContextModelTestCase
addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
- mappedSuperclass.setIdClass("myIdClass");
+ mappedSuperclass.getIdClassReference().setIdClassName("myIdClass");
getJavaPersistentType().setMappingKey(MappingKeys.ENTITY_TYPE_MAPPING_KEY);
assertTrue(getJavaPersistentType().getMapping() instanceof Entity);
@@ -64,7 +76,7 @@ public class JavaMappedSuperclassTests extends ContextModelTestCase
addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
- mappedSuperclass.setIdClass("myIdClass");
+ mappedSuperclass.getIdClassReference().setIdClassName("myIdClass");
getJavaPersistentType().setMappingKey(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY);
assertTrue(getJavaPersistentType().getMapping() instanceof Embeddable);
@@ -79,7 +91,7 @@ public class JavaMappedSuperclassTests extends ContextModelTestCase
addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
- mappedSuperclass.setIdClass("myIdClass");
+ mappedSuperclass.getIdClassReference().setIdClassName("myIdClass");
getJavaPersistentType().setMappingKey(MappingKeys.NULL_TYPE_MAPPING_KEY);
assertTrue(getJavaPersistentType().getMapping() instanceof JavaNullTypeMapping);
@@ -88,7 +100,6 @@ public class JavaMappedSuperclassTests extends ContextModelTestCase
assertNull(typeResource.getAnnotation(MappedSuperclassAnnotation.ANNOTATION_NAME));
assertNull(typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME));
}
-
public void testMappedSuperclass() throws Exception {
createTestMappedSuperclass();
@@ -193,54 +204,80 @@ public class JavaMappedSuperclassTests extends ContextModelTestCase
public void testUpdateIdClass() throws Exception {
createTestMappedSuperclass();
+ createTestIdClass();
addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
+
JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
-
- assertNull(mappedSuperclass.getIdClass());
+ IdClassReference idClassRef = mappedSuperclass.getIdClassReference();
+
assertNull(typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME));
+ assertNull(idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
IdClassAnnotation idClass = (IdClassAnnotation) typeResource.addAnnotation(IdClassAnnotation.ANNOTATION_NAME);
- assertNull(mappedSuperclass.getIdClass());
assertNotNull(typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME));
+ assertNull(idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
+
+ // test setting id class name to nonexistent class. test class name is set, but class is null
+ String nonExistentIdClassName = PACKAGE_NAME + ".Foo";
+ idClass.setValue(nonExistentIdClassName);
+ assertEquals(nonExistentIdClassName, ((IdClassAnnotation) typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME)).getValue());
+ assertEquals(nonExistentIdClassName, idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
- idClass.setValue("model.Foo");
- assertEquals("model.Foo", mappedSuperclass.getIdClass());
- assertEquals("model.Foo", ((IdClassAnnotation) typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME)).getValue());
+ // test setting id class name to existent class. test class name is set and class is not null
+ String existentIdClassName = PACKAGE_NAME + ".TestTypeId";
+ idClass.setValue(existentIdClassName);
+ assertEquals(existentIdClassName, ((IdClassAnnotation) typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME)).getValue());
+ assertEquals(existentIdClassName, idClassRef.getIdClassName());
+ assertNotNull(idClassRef.getIdClass());
//test setting @IdClass value to null, IdClass annotation is removed
idClass.setValue(null);
- assertNull(mappedSuperclass.getIdClass());
assertNull(typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME));
+ assertNull(idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
//reset @IdClass value and then remove @IdClass
idClass = (IdClassAnnotation) typeResource.addAnnotation(IdClassAnnotation.ANNOTATION_NAME);
- idClass.setValue("model.Foo");
+ idClass.setValue(existentIdClassName);
typeResource.removeAnnotation(IdClassAnnotation.ANNOTATION_NAME);
getJpaProject().synchronizeContextModel();
-
- assertNull(mappedSuperclass.getIdClass());
- assertNull(typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME));
+ assertNull(typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME));
+ assertNull(idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
}
public void testModifyIdClass() throws Exception {
createTestMappedSuperclass();
+ createTestIdClass();
addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
+
JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
-
- assertNull(mappedSuperclass.getIdClass());
+ IdClassReference idClassRef = mappedSuperclass.getIdClassReference();
+
assertNull(typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME));
-
- mappedSuperclass.setIdClass("model.Foo");
- assertEquals("model.Foo", ((IdClassAnnotation) typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME)).getValue());
- assertEquals("model.Foo", mappedSuperclass.getIdClass());
+ assertNull(idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
- mappedSuperclass.setIdClass(null);
- assertNull(mappedSuperclass.getIdClass());
+ String nonExistentIdClassName = PACKAGE_NAME + ".Foo";
+ idClassRef.setIdClassName(nonExistentIdClassName);
+ assertEquals(nonExistentIdClassName, ((IdClassAnnotation) typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME)).getValue());
+ assertEquals(nonExistentIdClassName, idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
+
+ String existentIdClassName = PACKAGE_NAME + ".TestTypeId";
+ idClassRef.setIdClassName(existentIdClassName);
+ assertEquals(existentIdClassName, ((IdClassAnnotation) typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME)).getValue());
+ assertEquals(existentIdClassName, idClassRef.getIdClassName());
+ assertNotNull(idClassRef.getIdClass());
+
+ idClassRef.setIdClassName(null);
assertNull(typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME));
+ assertNull(idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
}
-
}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEntityTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEntityTests.java
index 3c924250b8..9df4728213 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEntityTests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEntityTests.java
@@ -21,6 +21,7 @@ import org.eclipse.jpt.core.context.AttributeOverrideContainer;
import org.eclipse.jpt.core.context.BasicMapping;
import org.eclipse.jpt.core.context.DiscriminatorType;
import org.eclipse.jpt.core.context.Entity;
+import org.eclipse.jpt.core.context.IdClassReference;
import org.eclipse.jpt.core.context.InheritanceType;
import org.eclipse.jpt.core.context.PersistentType;
import org.eclipse.jpt.core.context.java.JavaAssociationOverride;
@@ -62,14 +63,15 @@ import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
@SuppressWarnings("nls")
public class OrmEntityTests extends ContextModelTestCase
{
-
protected static final String CHILD_TYPE_NAME = "AnnotationTestTypeChild";
protected static final String FULLY_QUALIFIED_CHILD_TYPE_NAME = PACKAGE_NAME + "." + CHILD_TYPE_NAME;
-
+
+
public OrmEntityTests(String name) {
super(name);
}
+
@Override
protected void setUp() throws Exception {
super.setUp();
@@ -155,8 +157,7 @@ public class OrmEntityTests extends ContextModelTestCase
};
this.javaProject.createCompilationUnit(PACKAGE_NAME, "AnnotationTestTypeChild.java", sourceWriter);
}
-
-
+
private ICompilationUnit createTestMappedSuperclass() throws Exception {
return this.createTestType(new DefaultAnnotationWriter() {
@Override
@@ -280,6 +281,17 @@ public class OrmEntityTests extends ContextModelTestCase
});
}
+ private void createTestIdClass() throws Exception {
+ SourceWriter sourceWriter = new SourceWriter() {
+ public void appendSourceTo(StringBuilder sb) {
+ sb.append(CR);
+ sb.append("public class ").append("TestTypeId").append(" ");
+ sb.append("{}").append(CR);
+ }
+ };
+ this.javaProject.createCompilationUnit(PACKAGE_NAME, "TestTypeId.java", sourceWriter);
+ }
+
public void testUpdateSpecifiedName() throws Exception {
OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
@@ -2595,53 +2607,79 @@ public class OrmEntityTests extends ContextModelTestCase
}
public void testUpdateIdClass() throws Exception {
- OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
- OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
+ createTestIdClass();
+ OrmPersistentType persistentType =
+ getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-
- assertNull(ormEntity.getIdClass());
+ OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
+ IdClassReference idClassRef = ormEntity.getIdClassReference();
+
assertNull(entityResource.getIdClass());
+ assertNull(idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
entityResource.setIdClass(OrmFactory.eINSTANCE.createXmlIdClass());
-
- assertNull(ormEntity.getIdClass());
assertNotNull(entityResource.getIdClass());
+ assertNull(idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
- entityResource.getIdClass().setClassName("model.Foo");
- assertEquals("model.Foo", ormEntity.getIdClass());
- assertEquals("model.Foo", entityResource.getIdClass().getClassName());
+ String nonExistentIdClassName = PACKAGE_NAME + ".Foo";
+ entityResource.getIdClass().setClassName(nonExistentIdClassName);
+ assertEquals(nonExistentIdClassName, entityResource.getIdClass().getClassName());
+ assertEquals(nonExistentIdClassName, idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
+
+ String existentIdClassName = PACKAGE_NAME + ".TestTypeId";
+ entityResource.getIdClass().setClassName(existentIdClassName);
+ assertEquals(existentIdClassName, entityResource.getIdClass().getClassName());
+ assertEquals(existentIdClassName, idClassRef.getIdClassName());
+ assertNotNull(idClassRef.getIdClass());
//test setting @IdClass value to null, id-class tag is not removed
entityResource.getIdClass().setClassName(null);
- assertNull(ormEntity.getIdClass());
assertNotNull(entityResource.getIdClass());
+ assertNull(idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
//reset @IdClass value and then remove id-class tag
entityResource.setIdClass(OrmFactory.eINSTANCE.createXmlIdClass());
entityResource.getIdClass().setClassName("model.Foo");
entityResource.setIdClass(null);
-
- assertNull(ormEntity.getIdClass());
assertNull(entityResource.getIdClass());
+ assertNull(idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
}
public void testModifyIdClass() throws Exception {
- OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
- OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
+ createTestIdClass();
+ OrmPersistentType persistentType =
+ getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-
- assertNull(ormEntity.getIdClass());
- assertNull(entityResource.getIdClass());
-
- ormEntity.setIdClass("model.Foo");
- assertEquals("model.Foo", entityResource.getIdClass().getClassName());
- assertEquals("model.Foo", ormEntity.getIdClass());
+ OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
+ IdClassReference idClassRef = ormEntity.getIdClassReference();
- ormEntity.setIdClass(null);
- assertNull(ormEntity.getIdClass());
assertNull(entityResource.getIdClass());
+ assertNull(idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
+
+ String nonExistentIdClassName = PACKAGE_NAME + ".Foo";
+ idClassRef.setIdClassName(nonExistentIdClassName);
+ assertEquals(nonExistentIdClassName, entityResource.getIdClass().getClassName());
+ assertEquals(nonExistentIdClassName, idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
+
+ String existentIdClassName = PACKAGE_NAME + ".TestTypeId";
+ idClassRef.setIdClassName(existentIdClassName);
+ assertEquals(existentIdClassName, entityResource.getIdClass().getClassName());
+ assertEquals(existentIdClassName, idClassRef.getIdClassName());
+ assertNotNull(idClassRef.getIdClass());
+
+ idClassRef.setIdClassName(null);
+ assertNull(entityResource.getIdClass());
+ assertNull(idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmMappedSuperclassTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmMappedSuperclassTests.java
index c029ba1a44..9e0f9d80f0 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmMappedSuperclassTests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmMappedSuperclassTests.java
@@ -13,6 +13,7 @@ import java.util.ListIterator;
import org.eclipse.jpt.core.JptCorePlugin;
import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.context.AccessType;
+import org.eclipse.jpt.core.context.IdClassReference;
import org.eclipse.jpt.core.context.orm.OrmEmbeddable;
import org.eclipse.jpt.core.context.orm.OrmEntity;
import org.eclipse.jpt.core.context.orm.OrmMappedSuperclass;
@@ -24,6 +25,7 @@ import org.eclipse.jpt.core.resource.orm.XmlMappedSuperclass;
import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
+import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
@SuppressWarnings("nls")
public class OrmMappedSuperclassTests extends ContextModelTestCase
@@ -42,6 +44,17 @@ public class OrmMappedSuperclassTests extends ContextModelTestCase
getPersistenceXmlResource().save(null);
}
+ private void createTestIdClass() throws Exception {
+ SourceWriter sourceWriter = new SourceWriter() {
+ public void appendSourceTo(StringBuilder sb) {
+ sb.append(CR);
+ sb.append("public class ").append("TestTypeId").append(" ");
+ sb.append("{}").append(CR);
+ }
+ };
+ this.javaProject.createCompilationUnit(PACKAGE_NAME, "TestTypeId.java", sourceWriter);
+ }
+
public void testUpdateClass() throws Exception {
OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo");
OrmMappedSuperclass ormMappedSuperclass = (OrmMappedSuperclass) ormPersistentType.getMapping();
@@ -296,50 +309,78 @@ public class OrmMappedSuperclassTests extends ContextModelTestCase
}
public void testUpdateIdClass() throws Exception {
- OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo");
+ createTestIdClass();
+ OrmPersistentType ormPersistentType =
+ getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo");
+
+ XmlMappedSuperclass mappedSuperclassResource = getXmlEntityMappings().getMappedSuperclasses().get(0);
OrmMappedSuperclass ormMappedSuperclass = (OrmMappedSuperclass) ormPersistentType.getMapping();
- XmlMappedSuperclass mappedSuperclassResource = getXmlEntityMappings().getMappedSuperclasses().get(0); assertNull(ormMappedSuperclass.getSpecifiedMetadataComplete());
-
- assertNull(ormMappedSuperclass.getIdClass());
+ IdClassReference idClassRef = ormMappedSuperclass.getIdClassReference();
+
assertNull(mappedSuperclassResource.getIdClass());
+ assertNull(idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
mappedSuperclassResource.setIdClass(OrmFactory.eINSTANCE.createXmlIdClass());
-
- assertNull(ormMappedSuperclass.getIdClass());
assertNotNull(mappedSuperclassResource.getIdClass());
+ assertNull(idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
- mappedSuperclassResource.getIdClass().setClassName("model.Foo");
- assertEquals("model.Foo", ormMappedSuperclass.getIdClass());
- assertEquals("model.Foo", mappedSuperclassResource.getIdClass().getClassName());
+ String nonExistentIdClassName = PACKAGE_NAME + ".Foo";
+ mappedSuperclassResource.getIdClass().setClassName(nonExistentIdClassName);
+ assertEquals(nonExistentIdClassName, mappedSuperclassResource.getIdClass().getClassName());
+ assertEquals(nonExistentIdClassName, idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
+
+ String existentIdClassName = PACKAGE_NAME + ".TestTypeId";
+ mappedSuperclassResource.getIdClass().setClassName(existentIdClassName);
+ assertEquals(existentIdClassName, mappedSuperclassResource.getIdClass().getClassName());
+ assertEquals(existentIdClassName, idClassRef.getIdClassName());
+ assertNotNull(idClassRef.getIdClass());
//test setting @IdClass value to null, id-class tag is not removed
mappedSuperclassResource.getIdClass().setClassName(null);
- assertNull(ormMappedSuperclass.getIdClass());
assertNotNull(mappedSuperclassResource.getIdClass());
+ assertNull(idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
//reset @IdClass value and then remove id-class tag
mappedSuperclassResource.setIdClass(OrmFactory.eINSTANCE.createXmlIdClass());
mappedSuperclassResource.getIdClass().setClassName("model.Foo");
mappedSuperclassResource.setIdClass(null);
-
- assertNull(ormMappedSuperclass.getIdClass());
assertNull(mappedSuperclassResource.getIdClass());
+ assertNull(idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
}
public void testModifyIdClass() throws Exception {
- OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo");
+ createTestIdClass();
+ OrmPersistentType ormPersistentType =
+ getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo");
+
+ XmlMappedSuperclass mappedSuperclassResource = getXmlEntityMappings().getMappedSuperclasses().get(0);
OrmMappedSuperclass ormMappedSuperclass = (OrmMappedSuperclass) ormPersistentType.getMapping();
- XmlMappedSuperclass mappedSuperclassResource = getXmlEntityMappings().getMappedSuperclasses().get(0); assertNull(ormMappedSuperclass.getSpecifiedMetadataComplete());
-
- assertNull(ormMappedSuperclass.getIdClass());
- assertNull(mappedSuperclassResource.getIdClass());
-
- ormMappedSuperclass.setIdClass("model.Foo");
- assertEquals("model.Foo", mappedSuperclassResource.getIdClass().getClassName());
- assertEquals("model.Foo", ormMappedSuperclass.getIdClass());
+ IdClassReference idClassRef = ormMappedSuperclass.getIdClassReference();
- ormMappedSuperclass.setIdClass(null);
- assertNull(ormMappedSuperclass.getIdClass());
assertNull(mappedSuperclassResource.getIdClass());
+ assertNull(idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
+
+ String nonExistentIdClassName = PACKAGE_NAME + ".Foo";
+ idClassRef.setIdClassName(nonExistentIdClassName);
+ assertEquals(nonExistentIdClassName, mappedSuperclassResource.getIdClass().getClassName());
+ assertEquals(nonExistentIdClassName, idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
+
+ String existentIdClassName = PACKAGE_NAME + ".TestTypeId";
+ idClassRef.setIdClassName(existentIdClassName);
+ assertEquals(existentIdClassName, mappedSuperclassResource.getIdClass().getClassName());
+ assertEquals(existentIdClassName, idClassRef.getIdClassName());
+ assertNotNull(idClassRef.getIdClass());
+
+ idClassRef.setIdClassName(null);
+ assertNull(mappedSuperclassResource.getIdClass());
+ assertNull(idClassRef.getIdClassName());
+ assertNull(idClassRef.getIdClass());
}
} \ No newline at end of file

Back to the top