diff options
author | pfullbright | 2007-05-16 21:19:57 +0000 |
---|---|---|
committer | pfullbright | 2007-05-16 21:19:57 +0000 |
commit | b594733d13ddab93b0ce9aad57140cb3b99e2cf3 (patch) | |
tree | 1fc5118b5761cc93ac94a362b496ab190af26957 /jpa/tests | |
parent | 41efa82b339650302c474e12c329829eba08eda7 (diff) | |
download | webtools.dali-b594733d13ddab93b0ce9aad57140cb3b99e2cf3.tar.gz webtools.dali-b594733d13ddab93b0ce9aad57140cb3b99e2cf3.tar.xz webtools.dali-b594733d13ddab93b0ce9aad57140cb3b99e2cf3.zip |
187314 - added API on IJpaPlatform to retrieve persistent types for a given persistence unit
Diffstat (limited to 'jpa/tests')
4 files changed, 117 insertions, 3 deletions
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/META-INF/MANIFEST.MF b/jpa/tests/org.eclipse.jpt.core.tests/META-INF/MANIFEST.MF index f03a1152e8..9e8424bcb7 100644 --- a/jpa/tests/org.eclipse.jpt.core.tests/META-INF/MANIFEST.MF +++ b/jpa/tests/org.eclipse.jpt.core.tests/META-INF/MANIFEST.MF @@ -7,10 +7,13 @@ Bundle-Version: 1.0.0 Bundle-Localization: plugin Require-Bundle: org.eclipse.core.resources, org.eclipse.core.runtime, + org.eclipse.emf.ecore, + org.eclipse.emf.ecore.xmi, org.eclipse.jdt.core, + org.eclipse.jem, org.eclipse.jpt.core, org.eclipse.jpt.utility, + org.eclipse.wst.common.emf, org.eclipse.wst.common.project.facet.core, - org.junit, - org.eclipse.emf.ecore + org.junit Bundle-RequiredExecutionEnvironment: J2SE-1.5 diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/JptCoreTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/JptCoreTests.java index 8b990a6bb8..baf5150f80 100644 --- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/JptCoreTests.java +++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/JptCoreTests.java @@ -14,9 +14,10 @@ import junit.framework.TestSuite; import org.eclipse.jpt.core.tests.internal.content.java.mappings.JptCoreContentJavaMappingsTests; import org.eclipse.jpt.core.tests.internal.jdtutility.JptCoreJdtUtilityTests; import org.eclipse.jpt.core.tests.internal.model.JptCoreModelTests; +import org.eclipse.jpt.core.tests.internal.platform.JptCorePlatformTests; /** - * Runs all JPA Core Tests + * Runs all JPT Core Tests */ public class JptCoreTests { @@ -25,6 +26,7 @@ public class JptCoreTests { suite.addTest(JptCoreContentJavaMappingsTests.suite()); suite.addTest(JptCoreModelTests.suite()); suite.addTest(JptCoreJdtUtilityTests.suite()); + suite.addTest(JptCorePlatformTests.suite()); return suite; } diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/BaseJpaPlatformTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/BaseJpaPlatformTests.java new file mode 100644 index 0000000000..94c306e4f0 --- /dev/null +++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/BaseJpaPlatformTests.java @@ -0,0 +1,81 @@ +package org.eclipse.jpt.core.tests.internal.platform; + +import java.io.IOException; +import junit.framework.TestCase; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.jpt.core.internal.IJpaFile; +import org.eclipse.jpt.core.internal.content.orm.EntityMappingsInternal; +import org.eclipse.jpt.core.internal.content.orm.OrmFactory; +import org.eclipse.jpt.core.internal.content.orm.XmlEntityInternal; +import org.eclipse.jpt.core.internal.content.orm.XmlRootContentNode; +import org.eclipse.jpt.core.internal.content.persistence.JavaClassRef; +import org.eclipse.jpt.core.internal.content.persistence.Persistence; +import org.eclipse.jpt.core.internal.content.persistence.PersistenceFactory; +import org.eclipse.jpt.core.internal.content.persistence.PersistenceXmlRootContentNode; +import org.eclipse.jpt.core.tests.internal.projects.TestJpaProject; +import org.eclipse.jpt.utility.internal.CollectionTools; + +public class BaseJpaPlatformTests extends TestCase +{ + protected TestJpaProject jpaProject; + + protected static final String PROJECT_NAME = "PlatformTestProject"; + protected static final String PACKAGE_NAME = "platform.test"; + protected static final String PERSISTENCE_XML_LOCATION = "src/META-INF/persistence.xml"; + protected static final String ORM_XML_LOCATION = "src/META-INF/orm.xml"; + + + public BaseJpaPlatformTests(String name) { + super(name); + } + + @Override + protected void setUp() throws Exception { + super.setUp(); + jpaProject = this.buildJpaProject(PROJECT_NAME, false); // false = no auto-build + } + + protected TestJpaProject buildJpaProject(String projectName, boolean autoBuild) throws Exception { + return new TestJpaProject(projectName, autoBuild); // false = no auto-build + } + + @Override + protected void tearDown() throws Exception { + jpaProject.dispose(); + jpaProject = null; + super.tearDown(); + } + + + public void testPersistentTypes() throws CoreException, IOException { + IFile persistenceXmlIFile = jpaProject.getProject().getFile(PERSISTENCE_XML_LOCATION); + IJpaFile persistenceXmlJpaFile = jpaProject.getJpaProject().getJpaFile(persistenceXmlIFile); + PersistenceXmlRootContentNode persistenceRoot = (PersistenceXmlRootContentNode) persistenceXmlJpaFile.getContent(); + Persistence persistence = persistenceRoot.getPersistence(); + + IFile ormXmlIFile = jpaProject.getProject().getFile(ORM_XML_LOCATION); + IJpaFile ormXmlJpaFile = jpaProject.getJpaProject().getJpaFile(ormXmlIFile); + XmlRootContentNode ormRoot = (XmlRootContentNode) ormXmlJpaFile.getContent(); + EntityMappingsInternal entityMappings = ormRoot.getEntityMappings(); + + // add xml persistent type + XmlEntityInternal xmlEntity = OrmFactory.eINSTANCE.createXmlEntityInternal(); + xmlEntity.setSpecifiedName("XmlEntity"); + entityMappings.getTypeMappings().add(xmlEntity); + entityMappings.eResource().save(null); + + assertEquals(1, CollectionTools.size(jpaProject.getJpaProject().getPlatform().persistentTypes(PROJECT_NAME))); + + // add java persistent type + jpaProject.createType(PACKAGE_NAME, "JavaEntity.java", + "@Entity public class JavaEntity {}" + ); + JavaClassRef javaClassRef = PersistenceFactory.eINSTANCE.createJavaClassRef(); + javaClassRef.setJavaClass(PACKAGE_NAME + ".JavaEntity"); + persistence.getPersistenceUnits().get(0).getClasses().add(javaClassRef); + persistence.eResource().save(null); + + assertEquals(2, CollectionTools.size(jpaProject.getJpaProject().getPlatform().persistentTypes(PROJECT_NAME))); + } +} diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/JptCorePlatformTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/JptCorePlatformTests.java new file mode 100644 index 0000000000..0a1f1855f0 --- /dev/null +++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/JptCorePlatformTests.java @@ -0,0 +1,28 @@ +/******************************************************************************* + * 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.platform; + +import junit.framework.Test; +import junit.framework.TestSuite; + +public class JptCorePlatformTests +{ + public static Test suite() { + TestSuite suite = new TestSuite(JptCorePlatformTests.class.getName()); + suite.addTestSuite(BaseJpaPlatformTests.class); + return suite; + } + + private JptCorePlatformTests() { + super(); + throw new UnsupportedOperationException(); + } +} |