| /******************************************************************************* |
| * 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.TestCase; |
| import org.eclipse.jpt.core.internal.IJpaPlatform; |
| import org.eclipse.jpt.core.internal.IJpaProject; |
| import org.eclipse.jpt.core.internal.IMappingKeys; |
| import org.eclipse.jpt.core.internal.content.java.IJavaAttributeMappingProvider; |
| import org.eclipse.jpt.core.internal.content.java.IJavaTypeMappingProvider; |
| import org.eclipse.jpt.core.internal.content.java.mappings.JavaBasicProvider; |
| import org.eclipse.jpt.core.internal.content.java.mappings.JavaEntityProvider; |
| import org.eclipse.jpt.core.internal.platform.generic.GenericJpaFactory; |
| import org.eclipse.jpt.core.internal.platform.generic.GenericPlatform; |
| import org.eclipse.jpt.core.tests.extension.resource.ExtensionTestPlugin; |
| import org.eclipse.jpt.core.tests.extension.resource.TestAttributeMappingProvider; |
| import org.eclipse.jpt.core.tests.extension.resource.TestJpaFactory; |
| import org.eclipse.jpt.core.tests.extension.resource.TestJpaPlatform; |
| import org.eclipse.jpt.core.tests.extension.resource.TestTypeMappingProvider; |
| import org.eclipse.jpt.core.tests.internal.ProjectUtility; |
| import org.eclipse.jpt.core.tests.internal.projects.TestJpaProject; |
| |
| public class JpaPlatformTests extends TestCase |
| { |
| protected TestJpaProject testProject; |
| |
| protected static final String PROJECT_NAME = "ExtensionTestProject"; |
| protected static final String PACKAGE_NAME = "extension.test"; |
| |
| public static final String TEST_PLUGIN_CLASS = ExtensionTestPlugin.class.getName(); |
| public static final String TEST_PLUGIN_ID = "org.eclipse.jpt.core.tests.extension.resource"; |
| |
| public static final String TEST_PLATFORM_ID = TestJpaPlatform.PLATFORM_ID; |
| public static final String TEST_PLATFORM_CLASS = TestJpaPlatform.class.getName(); |
| public static final String TEST_PLATFORM_LABEL = "Test Jpa Platform"; |
| public static final String TEST_JPA_FACTORY = TestJpaFactory.class.getName(); |
| public static final String TEST_TYPE_MAPPING_PROVIDER_CLASS = TestTypeMappingProvider.class.getName(); |
| public static final String TEST_ATTRIBUTE_MAPPING_PROVIDER_CLASS = TestAttributeMappingProvider.class.getName(); |
| |
| public JpaPlatformTests(String name) { |
| super(name); |
| } |
| |
| @Override |
| protected void setUp() throws Exception { |
| super.setUp(); |
| JpaPlatformExtensionTests.verifyExtensionTestProjectExists(); |
| ProjectUtility.deleteAllProjects(); |
| testProject = this.buildJpaProject(TestJpaProject.uniqueProjectName(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 { |
| testProject = null; |
| ProjectUtility.deleteAllProjects(); |
| // testProject.dispose(); |
| super.tearDown(); |
| } |
| |
| protected IJpaProject jpaProject() { |
| return this.testProject.getJpaProject(); |
| } |
| |
| public void testSetPlatform() { |
| assertTrue(jpaPlatform() instanceof GenericPlatform); |
| |
| jpaProject().setPlatform(TEST_PLATFORM_ID); |
| |
| assertTrue(jpaPlatform().getClass().getName().equals(TEST_PLATFORM_CLASS)); |
| } |
| |
| public void testGetJpaFactory() { |
| assertTrue(jpaPlatform().getJpaFactory() instanceof GenericJpaFactory); |
| jpaProject().setPlatform(TEST_PLATFORM_ID); |
| |
| assertTrue(jpaPlatform().getJpaFactory().getClass().getName().equals(TEST_JPA_FACTORY)); |
| } |
| |
| public void testJavaTypeMappingProvider() { |
| IJavaTypeMappingProvider provider = jpaProject().getPlatform().javaTypeMappingProvider(IMappingKeys.ENTITY_TYPE_MAPPING_KEY); |
| assertTrue(provider instanceof JavaEntityProvider); |
| boolean exceptionCaught = false; |
| try { |
| provider = jpaProject().getPlatform().javaTypeMappingProvider("test"); |
| } |
| catch (IllegalArgumentException e) { |
| exceptionCaught = true; |
| } |
| assertTrue(exceptionCaught); |
| |
| jpaProject().setPlatform(TEST_PLATFORM_ID); |
| |
| provider = jpaProject().getPlatform().javaTypeMappingProvider(IMappingKeys.ENTITY_TYPE_MAPPING_KEY); |
| assertTrue(provider instanceof JavaEntityProvider); |
| |
| provider = jpaProject().getPlatform().javaTypeMappingProvider("test"); |
| assertTrue(provider.getClass().getName().equals(TEST_TYPE_MAPPING_PROVIDER_CLASS)); |
| } |
| |
| public void testJavaAttributeMappingProvider() { |
| IJavaAttributeMappingProvider provider = jpaProject().getPlatform().javaAttributeMappingProvider(IMappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY); |
| assertTrue(provider instanceof JavaBasicProvider); |
| boolean exceptionCaught = false; |
| try { |
| provider = jpaProject().getPlatform().javaAttributeMappingProvider("test"); |
| } |
| catch (IllegalArgumentException e) { |
| exceptionCaught = true; |
| } |
| assertTrue(exceptionCaught); |
| |
| jpaProject().setPlatform(TEST_PLATFORM_ID); |
| |
| provider = jpaProject().getPlatform().javaAttributeMappingProvider(IMappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY); |
| assertTrue(provider instanceof JavaBasicProvider); |
| |
| provider = jpaProject().getPlatform().javaAttributeMappingProvider("test"); |
| assertTrue(provider.getClass().getName().equals(TEST_ATTRIBUTE_MAPPING_PROVIDER_CLASS)); |
| } |
| |
| private IJpaPlatform jpaPlatform() { |
| return jpaProject().jpaPlatform(); |
| } |
| } |