diff options
author | kmoore | 2012-03-05 15:17:27 +0000 |
---|---|---|
committer | kmoore | 2012-03-05 15:17:27 +0000 |
commit | eeccada92fc231d94cc5722e54ba59ef89f05f43 (patch) | |
tree | 9d600e0b0feac268eae014d82ca9d4fd4b8d02ae /jpa/tests | |
parent | d1d939e4444d70a6de1d203b8c7e195fd358eecc (diff) | |
download | webtools.dali-eeccada92fc231d94cc5722e54ba59ef89f05f43.tar.gz webtools.dali-eeccada92fc231d94cc5722e54ba59ef89f05f43.tar.xz webtools.dali-eeccada92fc231d94cc5722e54ba59ef89f05f43.zip |
Bug 369940 - [EclipseLink] dynamic persistence validation for parent-class attribute
Diffstat (limited to 'jpa/tests')
4 files changed, 188 insertions, 2 deletions
diff --git a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLink2_1OrmEmbeddableTests.java b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLink2_1OrmEmbeddableTests.java new file mode 100644 index 0000000000..bc21b644af --- /dev/null +++ b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLink2_1OrmEmbeddableTests.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2012 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.jpa.eclipselink.core.tests.internal.context.orm; + +import org.eclipse.jpt.jpa.core.MappingKeys; +import org.eclipse.jpt.jpa.eclipselink.core.context.orm.EclipseLinkOrmTypeMapping; +import org.eclipse.jpt.jpa.eclipselink.core.context.orm.EclipseLinkOrmPersistentType; +import org.eclipse.jpt.jpa.eclipselink.core.resource.orm.XmlTypeMapping; +import org.eclipse.jpt.jpa.eclipselink.core.tests.internal.context.EclipseLink2_1ContextModelTestCase; + +@SuppressWarnings("nls") +public class EclipseLink2_1OrmEmbeddableTests + extends EclipseLink2_1ContextModelTestCase +{ + public EclipseLink2_1OrmEmbeddableTests(String name) { + super(name); + } + + public void testUpdateSpecifiedParentClass() throws Exception { + EclipseLinkOrmPersistentType persistentType = (EclipseLinkOrmPersistentType) getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, "model.Employee"); + EclipseLinkOrmTypeMapping ormTypeMapping = persistentType.getMapping(); + XmlTypeMapping xmlTypeMapping = (XmlTypeMapping) ormTypeMapping.getXmlTypeMapping(); + assertNull(ormTypeMapping.getSpecifiedParentClass()); + assertNull(xmlTypeMapping.getParentClass()); + + //set parentClass in the resource model, verify context model updated + xmlTypeMapping.setParentClass("model.Parent"); + assertEquals("model.Parent", ormTypeMapping.getSpecifiedParentClass()); + assertEquals("model.Parent", xmlTypeMapping.getParentClass()); + + //set parentClass to null in the resource model + xmlTypeMapping.setParentClass(null); + assertNull(ormTypeMapping.getSpecifiedParentClass()); + assertNull(xmlTypeMapping.getParentClass()); + } + + public void testModifySpecifiedParentClass() throws Exception { + EclipseLinkOrmPersistentType persistentType = (EclipseLinkOrmPersistentType) getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, "model.Employee"); + EclipseLinkOrmTypeMapping ormTypeMapping = persistentType.getMapping(); + XmlTypeMapping xmlTypeMapping = (XmlTypeMapping) ormTypeMapping.getXmlTypeMapping(); + assertNull(ormTypeMapping.getSpecifiedParentClass()); + assertNull(xmlTypeMapping.getParentClass()); + + //set parentClass in the context model, verify resource model modified + ormTypeMapping.setSpecifiedParentClass("model.Parent"); + assertEquals("model.Parent", ormTypeMapping.getSpecifiedParentClass()); + assertEquals("model.Parent", xmlTypeMapping.getParentClass()); + + //set parentClass to null in the context model + ormTypeMapping.setSpecifiedParentClass(null); + assertNull(ormTypeMapping.getSpecifiedParentClass()); + assertNull(xmlTypeMapping.getParentClass()); + } +}
\ No newline at end of file diff --git a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLink2_1OrmEntityTests.java b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLink2_1OrmEntityTests.java new file mode 100644 index 0000000000..08779f7c2a --- /dev/null +++ b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLink2_1OrmEntityTests.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2012 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.jpa.eclipselink.core.tests.internal.context.orm; + +import org.eclipse.jpt.jpa.core.MappingKeys; +import org.eclipse.jpt.jpa.eclipselink.core.context.orm.EclipseLinkOrmTypeMapping; +import org.eclipse.jpt.jpa.eclipselink.core.context.orm.EclipseLinkOrmPersistentType; +import org.eclipse.jpt.jpa.eclipselink.core.resource.orm.XmlTypeMapping; +import org.eclipse.jpt.jpa.eclipselink.core.tests.internal.context.EclipseLink2_1ContextModelTestCase; + +@SuppressWarnings("nls") +public class EclipseLink2_1OrmEntityTests + extends EclipseLink2_1ContextModelTestCase +{ + public EclipseLink2_1OrmEntityTests(String name) { + super(name); + } + + public void testUpdateSpecifiedParentClass() throws Exception { + EclipseLinkOrmPersistentType persistentType = (EclipseLinkOrmPersistentType) getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Employee"); + EclipseLinkOrmTypeMapping ormTypeMapping = persistentType.getMapping(); + XmlTypeMapping xmlTypeMapping = (XmlTypeMapping) ormTypeMapping.getXmlTypeMapping(); + assertNull(ormTypeMapping.getSpecifiedParentClass()); + assertNull(xmlTypeMapping.getParentClass()); + + //set parentClass in the resource model, verify context model updated + xmlTypeMapping.setParentClass("model.Parent"); + assertEquals("model.Parent", ormTypeMapping.getSpecifiedParentClass()); + assertEquals("model.Parent", xmlTypeMapping.getParentClass()); + + //set parentClass to null in the resource model + xmlTypeMapping.setParentClass(null); + assertNull(ormTypeMapping.getSpecifiedParentClass()); + assertNull(xmlTypeMapping.getParentClass()); + } + + public void testModifySpecifiedParentClass() throws Exception { + EclipseLinkOrmPersistentType persistentType = (EclipseLinkOrmPersistentType) getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Employee"); + EclipseLinkOrmTypeMapping ormTypeMapping = persistentType.getMapping(); + XmlTypeMapping xmlTypeMapping = (XmlTypeMapping) ormTypeMapping.getXmlTypeMapping(); + assertNull(ormTypeMapping.getSpecifiedParentClass()); + assertNull(xmlTypeMapping.getParentClass()); + + //set parentClass in the context model, verify resource model modified + ormTypeMapping.setSpecifiedParentClass("model.Parent"); + assertEquals("model.Parent", ormTypeMapping.getSpecifiedParentClass()); + assertEquals("model.Parent", xmlTypeMapping.getParentClass()); + + //set parentClass to null in the context model + ormTypeMapping.setSpecifiedParentClass(null); + assertNull(ormTypeMapping.getSpecifiedParentClass()); + assertNull(xmlTypeMapping.getParentClass()); + } +}
\ No newline at end of file diff --git a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLink2_1OrmMappedSuperclassTests.java b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLink2_1OrmMappedSuperclassTests.java new file mode 100644 index 0000000000..1b16d12965 --- /dev/null +++ b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLink2_1OrmMappedSuperclassTests.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2012 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.jpa.eclipselink.core.tests.internal.context.orm; + +import org.eclipse.jpt.jpa.core.MappingKeys; +import org.eclipse.jpt.jpa.eclipselink.core.context.orm.EclipseLinkOrmTypeMapping; +import org.eclipse.jpt.jpa.eclipselink.core.context.orm.EclipseLinkOrmPersistentType; +import org.eclipse.jpt.jpa.eclipselink.core.resource.orm.XmlTypeMapping; +import org.eclipse.jpt.jpa.eclipselink.core.tests.internal.context.EclipseLink2_1ContextModelTestCase; + +@SuppressWarnings("nls") +public class EclipseLink2_1OrmMappedSuperclassTests + extends EclipseLink2_1ContextModelTestCase +{ + public EclipseLink2_1OrmMappedSuperclassTests(String name) { + super(name); + } + + public void testUpdateSpecifiedParentClass() throws Exception { + EclipseLinkOrmPersistentType persistentType = (EclipseLinkOrmPersistentType) getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Employee"); + EclipseLinkOrmTypeMapping ormTypeMapping = persistentType.getMapping(); + XmlTypeMapping xmlTypeMapping = (XmlTypeMapping) ormTypeMapping.getXmlTypeMapping(); + assertNull(ormTypeMapping.getSpecifiedParentClass()); + assertNull(xmlTypeMapping.getParentClass()); + + //set parentClass in the resource model, verify context model updated + xmlTypeMapping.setParentClass("model.Parent"); + assertEquals("model.Parent", ormTypeMapping.getSpecifiedParentClass()); + assertEquals("model.Parent", xmlTypeMapping.getParentClass()); + + //set parentClass to null in the resource model + xmlTypeMapping.setParentClass(null); + assertNull(ormTypeMapping.getSpecifiedParentClass()); + assertNull(xmlTypeMapping.getParentClass()); + } + + public void testModifySpecifiedParentClass() throws Exception { + EclipseLinkOrmPersistentType persistentType = (EclipseLinkOrmPersistentType) getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Employee"); + EclipseLinkOrmTypeMapping ormTypeMapping = persistentType.getMapping(); + XmlTypeMapping xmlTypeMapping = (XmlTypeMapping) ormTypeMapping.getXmlTypeMapping(); + assertNull(ormTypeMapping.getSpecifiedParentClass()); + assertNull(xmlTypeMapping.getParentClass()); + + //set parentClass in the context model, verify resource model modified + ormTypeMapping.setSpecifiedParentClass("model.Parent"); + assertEquals("model.Parent", ormTypeMapping.getSpecifiedParentClass()); + assertEquals("model.Parent", xmlTypeMapping.getParentClass()); + + //set parentClass to null in the context model + ormTypeMapping.setSpecifiedParentClass(null); + assertNull(ormTypeMapping.getSpecifiedParentClass()); + assertNull(xmlTypeMapping.getParentClass()); + } +}
\ No newline at end of file diff --git a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/JptEclipseLinkCoreOrmContextModelTests.java b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/JptEclipseLinkCoreOrmContextModelTests.java index da50bc760f..4d70a79c65 100644 --- a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/JptEclipseLinkCoreOrmContextModelTests.java +++ b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/JptEclipseLinkCoreOrmContextModelTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2011 Oracle. + * Copyright (c) 2007, 2012 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 @@ -31,7 +31,6 @@ public class JptEclipseLinkCoreOrmContextModelTests extends TestCase suite.addTestSuite(EclipseLinkOrmOneToManyMappingTests.class); suite.addTestSuite(EclipseLinkOrmOneToOneMappingTests.class); suite.addTestSuite(EclipseLinkOrmPersistentAttributeTests.class); - suite.addTestSuite(EclipseLink2_1OrmPersistentTypeTests.class); suite.addTestSuite(EclipseLinkOrmVersionMappingTests.class); suite.addTestSuite(EclipseLinkOrmTransientMappingTests.class); suite.addTestSuite(EclipseLinkOrmConverterTests.class); @@ -52,6 +51,10 @@ public class JptEclipseLinkCoreOrmContextModelTests extends TestCase suite.addTestSuite(EclipseLink2_0OrmOneToManyMappingTests.class); suite.addTestSuite(EclipseLink2_1EntityMappingsTests.class); suite.addTestSuite(EclipseLink2_1PersistenceUnitDefaultsTests.class); + suite.addTestSuite(EclipseLink2_1OrmPersistentTypeTests.class); + suite.addTestSuite(EclipseLink2_1OrmEmbeddableTests.class); + suite.addTestSuite(EclipseLink2_1OrmEntityTests.class); + suite.addTestSuite(EclipseLink2_1OrmMappedSuperclassTests.class); suite.addTestSuite(EclipseLink2_3OrmMultitenancyTests.class); return suite; } |