blob: 312981191ce366470bc837b0b82c7f6bcfcb4784 [file] [log] [blame]
/*******************************************************************************
* 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 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.facet.IJpaFacetDataModelProperties;
import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProvider;
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;
import org.eclipse.jpt.core.tests.internal.projects.TestPlatformProject;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
import org.eclipse.wst.common.project.facet.core.IActionConfigFactory;
import junit.framework.TestCase;
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_CLASS_NAME = 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();
this.testProject = this.buildJpaProject(TestPlatformProject.uniqueProjectName(PROJECT_NAME), false); // false = no auto-build
}
protected TestJpaProject buildJpaProject(String projectName, boolean autoBuild) throws Exception {
return new TestJpaProject(projectName, autoBuild, this.buildConfig());
}
protected IDataModel buildConfig() throws Exception {
IActionConfigFactory configFactory = new JpaFacetDataModelProvider();
IDataModel config = (IDataModel) configFactory.create();
config.setProperty(IJpaFacetDataModelProperties.PLATFORM_ID, TestJpaPlatform.ID);
return config;
}
@Override
protected void tearDown() throws Exception {
this.testProject = null;
ProjectUtility.deleteAllProjects();
// this.testProject.dispose();
super.tearDown();
}
protected IJpaProject jpaProject() {
return this.testProject.getJpaProject();
}
protected IJpaPlatform jpaPlatform() {
return this.jpaProject().jpaPlatform();
}
public void testJpaFactory() {
assertTrue(jpaPlatform().getJpaFactory().getClass().getName().equals(TEST_JPA_FACTORY));
}
public void testJavaTypeMappingProvider() {
IJavaTypeMappingProvider provider = jpaProject().jpaPlatform().javaTypeMappingProvider(IMappingKeys.ENTITY_TYPE_MAPPING_KEY);
assertTrue(provider instanceof JavaEntityProvider);
provider = jpaProject().jpaPlatform().javaTypeMappingProvider("test");
assertTrue(provider.getClass().getName().equals(TEST_TYPE_MAPPING_PROVIDER_CLASS));
}
public void testJavaAttributeMappingProvider() {
IJavaAttributeMappingProvider provider = jpaProject().jpaPlatform().javaAttributeMappingProvider(IMappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY);
assertTrue(provider instanceof JavaBasicProvider);
provider = jpaProject().jpaPlatform().javaAttributeMappingProvider("test");
assertTrue(provider.getClass().getName().equals(TEST_ATTRIBUTE_MAPPING_PROVIDER_CLASS));
}
}