diff options
Diffstat (limited to 'jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEntityTests.java')
-rw-r--r-- | jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEntityTests.java | 180 |
1 files changed, 163 insertions, 17 deletions
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEntityTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEntityTests.java index 054962aec3..49851fb989 100644 --- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEntityTests.java +++ b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEntityTests.java @@ -18,6 +18,7 @@ import org.eclipse.jpt.core.resource.java.JPA; import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaEntity; import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEntity; import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA; +import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory; import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity; import org.eclipse.jpt.utility.internal.iterators.ArrayIterator; @@ -47,6 +48,24 @@ public class EclipseLinkOrmEntityTests extends EclipseLinkOrmContextModelTestCas this.createAnnotationAndMembers(EclipseLinkJPA.PACKAGE, "ReadOnly", ""); } + private ICompilationUnit createTestEntityForCustomizer() throws Exception { + createCustomizerAnnotation(); + return this.createTestType(new DefaultAnnotationWriter() { + @Override + public Iterator<String> imports() { + return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CUSTOMIZER); + } + @Override + public void appendTypeAnnotationTo(StringBuilder sb) { + sb.append("@Entity").append(CR); + } + }); + } + + private void createCustomizerAnnotation() throws Exception{ + this.createAnnotationAndMembers(EclipseLinkJPA.PACKAGE, "Customizer", "Class value()"); + } + public void testUpdateReadOnly() throws Exception { createTestEntityForReadOnly(); OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME); @@ -66,21 +85,21 @@ public class EclipseLinkOrmEntityTests extends EclipseLinkOrmContextModelTestCas resourceEntity.setReadOnly(Boolean.FALSE); - assertFalse(resourceEntity.getReadOnly()); + assertEquals(Boolean.FALSE, resourceEntity.getReadOnly()); assertFalse(javaContextEntity.getReadOnly().isReadOnly()); assertFalse(ormContextEntity.getReadOnly().isReadOnly()); assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly()); - assertFalse(ormContextEntity.getReadOnly().getSpecifiedReadOnly()); + assertEquals(Boolean.FALSE, ormContextEntity.getReadOnly().getSpecifiedReadOnly()); // set xml read only to true, check override resourceEntity.setReadOnly(Boolean.TRUE); - assertTrue(resourceEntity.getReadOnly()); + assertEquals(Boolean.TRUE, resourceEntity.getReadOnly()); assertFalse(javaContextEntity.getReadOnly().isReadOnly()); assertTrue(ormContextEntity.getReadOnly().isReadOnly()); assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly()); - assertTrue(ormContextEntity.getReadOnly().getSpecifiedReadOnly()); + assertEquals(Boolean.TRUE, ormContextEntity.getReadOnly().getSpecifiedReadOnly()); // clear xml read only, set java read only to true, check defaults @@ -92,27 +111,39 @@ public class EclipseLinkOrmEntityTests extends EclipseLinkOrmContextModelTestCas assertTrue(ormContextEntity.getReadOnly().isReadOnly()); assertTrue(ormContextEntity.getReadOnly().isDefaultReadOnly()); assertNull(ormContextEntity.getReadOnly().getSpecifiedReadOnly()); + + // set metadataComplete to True, check defaults not from java + + ormContextEntity.setSpecifiedMetadataComplete(Boolean.TRUE); + + assertNull(resourceEntity.getReadOnly()); + assertTrue(javaContextEntity.getReadOnly().isReadOnly()); + assertFalse(ormContextEntity.getReadOnly().isReadOnly()); + assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly()); + assertNull(ormContextEntity.getReadOnly().getSpecifiedReadOnly()); + + ormContextEntity.setSpecifiedMetadataComplete(null); // set xml read only to false, check override resourceEntity.setReadOnly(Boolean.FALSE); - assertFalse(resourceEntity.getReadOnly()); + assertEquals(Boolean.FALSE, resourceEntity.getReadOnly()); assertTrue(javaContextEntity.getReadOnly().isReadOnly()); assertFalse(ormContextEntity.getReadOnly().isReadOnly()); assertTrue(ormContextEntity.getReadOnly().isDefaultReadOnly()); - assertFalse(ormContextEntity.getReadOnly().getSpecifiedReadOnly()); + assertEquals(Boolean.FALSE, ormContextEntity.getReadOnly().getSpecifiedReadOnly()); // set xml read only to true, check override resourceEntity.setReadOnly(Boolean.TRUE); - assertTrue(resourceEntity.getReadOnly()); + assertEquals(Boolean.TRUE, resourceEntity.getReadOnly()); assertTrue(javaContextEntity.getReadOnly().isReadOnly()); assertTrue(ormContextEntity.getReadOnly().isReadOnly()); assertTrue(ormContextEntity.getReadOnly().isDefaultReadOnly()); - assertTrue(ormContextEntity.getReadOnly().getSpecifiedReadOnly()); - + assertEquals(Boolean.TRUE, ormContextEntity.getReadOnly().getSpecifiedReadOnly()); + // clear xml read only, set java read only to false, check defaults resourceEntity.setReadOnly(null); @@ -124,25 +155,27 @@ public class EclipseLinkOrmEntityTests extends EclipseLinkOrmContextModelTestCas assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly()); assertNull(ormContextEntity.getReadOnly().getSpecifiedReadOnly()); + + // set xml read only to false, check override resourceEntity.setReadOnly(Boolean.FALSE); - assertFalse(resourceEntity.getReadOnly()); + assertEquals(Boolean.FALSE, resourceEntity.getReadOnly()); assertFalse(javaContextEntity.getReadOnly().isReadOnly()); assertFalse(ormContextEntity.getReadOnly().isReadOnly()); assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly()); - assertFalse(ormContextEntity.getReadOnly().getSpecifiedReadOnly()); + assertEquals(Boolean.FALSE, ormContextEntity.getReadOnly().getSpecifiedReadOnly()); // set xml read only to true, check override resourceEntity.setReadOnly(Boolean.TRUE); - assertTrue(resourceEntity.getReadOnly()); + assertEquals(Boolean.TRUE, resourceEntity.getReadOnly()); assertFalse(javaContextEntity.getReadOnly().isReadOnly()); assertTrue(ormContextEntity.getReadOnly().isReadOnly()); assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly()); - assertTrue(ormContextEntity.getReadOnly().getSpecifiedReadOnly()); + assertEquals(Boolean.TRUE, ormContextEntity.getReadOnly().getSpecifiedReadOnly()); } public void testModifyReadOnly() throws Exception { @@ -162,19 +195,19 @@ public class EclipseLinkOrmEntityTests extends EclipseLinkOrmContextModelTestCas ormContextEntity.getReadOnly().setSpecifiedReadOnly(Boolean.TRUE); - assertTrue(resourceEntity.getReadOnly()); + assertEquals(Boolean.TRUE, resourceEntity.getReadOnly()); assertTrue(ormContextEntity.getReadOnly().isReadOnly()); assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly()); - assertTrue(ormContextEntity.getReadOnly().getSpecifiedReadOnly()); + assertEquals(Boolean.TRUE, ormContextEntity.getReadOnly().getSpecifiedReadOnly()); // set context read only to false, check resource ormContextEntity.getReadOnly().setSpecifiedReadOnly(Boolean.FALSE); - assertFalse(resourceEntity.getReadOnly()); + assertEquals(Boolean.FALSE, resourceEntity.getReadOnly()); assertFalse(ormContextEntity.getReadOnly().isReadOnly()); assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly()); - assertFalse(ormContextEntity.getReadOnly().getSpecifiedReadOnly()); + assertEquals(Boolean.FALSE, ormContextEntity.getReadOnly().getSpecifiedReadOnly()); // set context read only to null, check resource @@ -185,4 +218,117 @@ public class EclipseLinkOrmEntityTests extends EclipseLinkOrmContextModelTestCas assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly()); assertNull(ormContextEntity.getReadOnly().getSpecifiedReadOnly()); } + + + public void testUpdateCustomizerClass() throws Exception { + createTestEntityForCustomizer(); + OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME); + EclipseLinkJavaEntity javaContextEntity = (EclipseLinkJavaEntity) ormPersistentType.getJavaPersistentType().getMapping(); + EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping(); + XmlEntity resourceEntity = (XmlEntity) ormResource().getEntityMappings().getEntities().get(0); + + + // check defaults + + assertNull(resourceEntity.getCustomizer()); + assertNull(javaContextEntity.getCustomizer().getCustomizerClass()); + assertNull(ormContextEntity.getCustomizer().getCustomizerClass()); + assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass()); + assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass()); + + // set xml customizer, check defaults + resourceEntity.setCustomizer(EclipseLinkOrmFactory.eINSTANCE.createXmlCustomizer()); + assertNull(resourceEntity.getCustomizer().getCustomizerClassName()); + assertNull(javaContextEntity.getCustomizer().getCustomizerClass()); + assertNull(ormContextEntity.getCustomizer().getCustomizerClass()); + assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass()); + assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass()); + + + // set xml customizer class, check override + + resourceEntity.getCustomizer().setCustomizerClassName("foo"); + + assertEquals("foo", resourceEntity.getCustomizer().getCustomizerClassName()); + assertNull(javaContextEntity.getCustomizer().getCustomizerClass()); + assertEquals("foo", ormContextEntity.getCustomizer().getCustomizerClass()); + assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass()); + assertEquals("foo", ormContextEntity.getCustomizer().getSpecifiedCustomizerClass()); + + // clear xml customizer class, set java customizer class, check defaults + + resourceEntity.getCustomizer().setCustomizerClassName(null); + javaContextEntity.getCustomizer().setSpecifiedCustomizerClass("bar"); + + assertNull(resourceEntity.getCustomizer().getCustomizerClassName()); + assertEquals("bar", javaContextEntity.getCustomizer().getCustomizerClass()); + assertEquals("bar", ormContextEntity.getCustomizer().getCustomizerClass()); + assertEquals("bar", ormContextEntity.getCustomizer().getDefaultCustomizerClass()); + assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass()); + + // set metadataComplete to True, check defaults not from java + + ormContextEntity.setSpecifiedMetadataComplete(Boolean.TRUE); + + assertNull(resourceEntity.getCustomizer().getCustomizerClassName()); + assertEquals("bar", javaContextEntity.getCustomizer().getCustomizerClass()); + assertNull(ormContextEntity.getCustomizer().getCustomizerClass()); + assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass()); + assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass()); + + ormContextEntity.setSpecifiedMetadataComplete(null); + + // set xml customizer class, check override + + resourceEntity.getCustomizer().setCustomizerClassName("foo"); + + assertEquals("foo", resourceEntity.getCustomizer().getCustomizerClassName()); + assertEquals("bar", javaContextEntity.getCustomizer().getCustomizerClass()); + assertEquals("foo", ormContextEntity.getCustomizer().getCustomizerClass()); + assertEquals("bar", ormContextEntity.getCustomizer().getDefaultCustomizerClass()); + assertEquals("foo", ormContextEntity.getCustomizer().getSpecifiedCustomizerClass()); + + //set xml customizer null + javaContextEntity.getCustomizer().setSpecifiedCustomizerClass(null); + resourceEntity.setCustomizer(null); + assertNull(resourceEntity.getCustomizer()); + assertNull(javaContextEntity.getCustomizer().getCustomizerClass()); + assertNull(ormContextEntity.getCustomizer().getCustomizerClass()); + assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass()); + assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass()); + + } + + public void testModifyCustomizerClass() throws Exception { + createTestEntityForCustomizer(); + OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME); + EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping(); + XmlEntity resourceEntity = (XmlEntity) ormResource().getEntityMappings().getEntities().get(0); + + // check defaults + + assertNull(resourceEntity.getCustomizer()); + assertNull(ormContextEntity.getCustomizer().getCustomizerClass()); + assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass()); + assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass()); + + // set context customizer, check resource + + ormContextEntity.getCustomizer().setSpecifiedCustomizerClass("foo"); + + assertEquals("foo", resourceEntity.getCustomizer().getCustomizerClassName()); + assertEquals("foo", ormContextEntity.getCustomizer().getCustomizerClass()); + assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass()); + assertEquals("foo", ormContextEntity.getCustomizer().getSpecifiedCustomizerClass()); + + // set context customizer to null, check resource + + ormContextEntity.getCustomizer().setSpecifiedCustomizerClass(null); + + assertNull(resourceEntity.getCustomizer()); + assertNull(ormContextEntity.getCustomizer().getCustomizerClass()); + assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass()); + assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass()); + } + } |