blob: d3dd875855a6bc9ea3214a663501030506ac1ffa [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2007 IBM Corporation and others.
* 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.wtp.j2ee.headless.tests.ejb.operations;
import junit.framework.Test;
import org.eclipse.jst.j2ee.ejb.project.operations.IEjbFacetInstallDataModelProperties;
import org.eclipse.jst.j2ee.internal.ejb.project.operations.EjbFacetProjectCreationDataModelProvider;
import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetConstants;
import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetInstallDataModelProperties;
import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetProjectCreationDataModelProperties;
import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetDataModelProperties;
import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties;
import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties.FacetDataModelMap;
import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
import org.eclipse.wst.common.tests.SimpleTestSuite;
import org.eclipse.wtp.j2ee.headless.tests.j2ee.operations.JavaEEFacetConstants;
import org.eclipse.wtp.j2ee.headless.tests.j2ee.operations.ModuleProjectCreationOperationTest;
public class EJBProjectCreationOperationTest extends ModuleProjectCreationOperationTest {
public EJBProjectCreationOperationTest() {
super("EJBProjectCreationOperationTest");
}
public EJBProjectCreationOperationTest(String name) {
super(name);
}
public static Test suite() {
return new SimpleTestSuite(EJBProjectCreationOperationTest.class);
}
public void testEJB11_Defaults() throws Exception {
IDataModel dm = getEJBDataModel("insaneEJB", null, null, null, JavaEEFacetConstants.EJB_11, true);
runAndVerify(dm);
}
public void testEJB20_Defaults() throws Exception {
IDataModel dm = getEJBDataModel("fooEJB", null, null, null, JavaEEFacetConstants.EJB_2, true);
runAndVerify(dm);
}
public void testEJB21_Defaults() throws Exception {
IDataModel dm = getEJBDataModel("barEJB", null, null, null, JavaEEFacetConstants.EJB_21, true);
runAndVerify(dm);
}
public void testEJB30_Defaults() throws Exception {
IDataModel dm = getEJBDataModel("penEJB", null, null, null, JavaEEFacetConstants.EJB_3, false);
runAndVerify(dm);
}
public void testEJB31_Defaults() throws Exception {
IDataModel dm = getEJBDataModel("blahEJB", null, null, null, JavaEEFacetConstants.EJB_31, false);
runAndVerify(dm);
}
public void testEJB11_AddToEAR_Defaults() throws Exception {
IDataModel dm = getEJBDataModel("testEJB", null, null, "testEAR", JavaEEFacetConstants.EJB_11, true);
runAndVerify(dm);
}
public void testEJB20_AddToEAR_Defaults() throws Exception {
IDataModel dm = getEJBDataModel("coolEJB", null, null, "booEAR", JavaEEFacetConstants.EJB_2, true);
runAndVerify(dm);
}
public void testEJB21_AddToEAR_Defaults() throws Exception {
IDataModel dm = getEJBDataModel("crazyEJB", null, null, "starEAR", JavaEEFacetConstants.EJB_21, true);
runAndVerify(dm);
}
public void testEJB30_AddToEAR_Defaults() throws Exception {
IDataModel dm = getEJBDataModel("netoEJB", null, null, "myEAR", JavaEEFacetConstants.EJB_3, false);
runAndVerify(dm);
}
public void testEJB31_AddToEAR_Defaults() throws Exception {
IDataModel dm = getEJBDataModel("booEJB", null, null, "trymeEAR", JavaEEFacetConstants.EJB_31, false);
runAndVerify(dm);
}
public void testEJB11_AddToEAR_NoClient() throws Exception {
IDataModel dm = getEJBDataModel("testEJB", null, null, "testEAR", JavaEEFacetConstants.EJB_11, false, true);
runAndVerify(dm);
}
public void testEJB20_AddToEAR_NoClient() throws Exception {
IDataModel dm = getEJBDataModel("coolEJB", null, null, "booEAR", JavaEEFacetConstants.EJB_2, false, true);
runAndVerify(dm);
}
public void testEJB21_AddToEAR_NoClient() throws Exception {
IDataModel dm = getEJBDataModel("crazyEJB", null, null, "starEAR", JavaEEFacetConstants.EJB_21, false, true);
runAndVerify(dm);
}
public void testEJB30_AddToEAR_NoClient() throws Exception {
IDataModel dm = getEJBDataModel("netoEJB", null, null, "myEAR", JavaEEFacetConstants.EJB_3, false, false);
runAndVerify(dm);
}
public void testEJB31_AddToEAR_NoClient() throws Exception {
IDataModel dm = getEJBDataModel("booEJB", null, null, "trymeEAR", JavaEEFacetConstants.EJB_31, false, false);
runAndVerify(dm);
}
public void testEJB11_AddToEAR_ChangedEJBClientName() throws Exception {
IDataModel dm = getEJBDataModel("fooBarEJB", "testEJBClient", null, "theirEAR", JavaEEFacetConstants.EJB_11, true);
runAndVerify(dm);
}
public void testEJB20_AddToEAR_ChangedEJBClientName() throws Exception {
IDataModel dm = getEJBDataModel("saneEJB", "coolEJBClient", null, "yourEAR", JavaEEFacetConstants.EJB_2, true);
runAndVerify(dm);
}
public void testEJB21_AddToEAR_ChangedEJBClientName() throws Exception {
IDataModel dm = getEJBDataModel("clipEJB", "crazyEJBClient", null, "ourEAR", JavaEEFacetConstants.EJB_21, true);
runAndVerify(dm);
}
public void testEJB30_AddToEAR_ChangedEJBClientName() throws Exception {
IDataModel dm = getEJBDataModel("phoneEJB", "netoEJBClient", null, "waterEAR", JavaEEFacetConstants.EJB_3, false);
runAndVerify(dm);
}
public void testEJB31_AddToEAR_ChangedEJBClientName() throws Exception {
IDataModel dm = getEJBDataModel("scaryEJB", "booEJBClient", null, "scaredEAR", JavaEEFacetConstants.EJB_31, false);
runAndVerify(dm);
}
public void testEJB11_AddToEAR_ChangedClientSourceFolder() throws Exception {
IDataModel dm = getEJBDataModel("cupEJB", null, "src", "openEAR", JavaEEFacetConstants.EJB_11, true);
runAndVerify(dm);
}
public void testEJB20_AddToEAR_ChangedClientSourceFolder() throws Exception {
IDataModel dm = getEJBDataModel("mouseEJB", null, "files", "closedEAR", JavaEEFacetConstants.EJB_2, true);
runAndVerify(dm);
}
public void testEJB21_AddToEAR_ChangedClientSourceFolder() throws Exception {
IDataModel dm = getEJBDataModel("pcEJB", null, "stuff", "batEAR", JavaEEFacetConstants.EJB_21, true);
runAndVerify(dm);
}
public void testEJB30_AddToEAR_ChangedClientSourceFolder() throws Exception {
IDataModel dm = getEJBDataModel("keyEJB", null, "foo", "keyEAR", JavaEEFacetConstants.EJB_3, false);
runAndVerify(dm);
}
public void testEJB31_AddToEAR_ChangedClientSourceFolder() throws Exception {
IDataModel dm = getEJBDataModel("goEJB", null, "boo", "goEAR", JavaEEFacetConstants.EJB_31, false);
runAndVerify(dm);
}
public void testEJB11A_ddToEAR_ChangedEJBClientName_ChangedClientSourceFolder() throws Exception {
IDataModel dm = getEJBDataModel("cupEJB", "superClient", "src", "openEAR", JavaEEFacetConstants.EJB_11, true);
runAndVerify(dm);
}
public void testEJB20_AddToEAR_ChangedEJBClientName_ChangedClientSourceFolder() throws Exception {
IDataModel dm = getEJBDataModel("mouseEJB", "dudeClient", "files", "closedEAR", JavaEEFacetConstants.EJB_2, true);
runAndVerify(dm);
}
public void testEJB21_AddToEAR_ChangedEJB_ClientNameChangedClientSourceFolder() throws Exception {
IDataModel dm = getEJBDataModel("pcEJB", "fireClient", "stuff", "batEAR", JavaEEFacetConstants.EJB_21, true);
runAndVerify(dm);
}
public void testEJB30_AddToEARChangedEJB_ClientName_ChangedClientSourceFolder() throws Exception {
IDataModel dm = getEJBDataModel("keyEJB", "wireClient", "foo", "keyEAR", JavaEEFacetConstants.EJB_3, false);
runAndVerify(dm);
}
public void testEJB31_AddToEARChangedEJB_ClientName_ChangedClientSourceFolder() throws Exception {
IDataModel dm = getEJBDataModel("goEJB", "workClient", "boo", "goEAR", JavaEEFacetConstants.EJB_31, false);
runAndVerify(dm);
}
public void testEJB30_Defaults_WithDD() throws Exception {
IDataModel dm = getEJBDataModel("tigerEJB", null, null, null, JavaEEFacetConstants.EJB_3, true);
runAndVerify(dm);
}
public void testEJB30_AddToEAR_Defaults_WithDD() throws Exception {
IDataModel dm = getEJBDataModel("pandaEJB", null, null, "roundEAR", JavaEEFacetConstants.EJB_3, true);
runAndVerify(dm);
}
public void testEJB30_AddToEAR_NoClient_WithDD() throws Exception {
IDataModel dm = getEJBDataModel("netoEJB", null, null, "myEAR", JavaEEFacetConstants.EJB_3, false, true);
runAndVerify(dm);
}
public void testEJB30_AddToEAR_ChangedEJBClientName_WithDD() throws Exception {
IDataModel dm = getEJBDataModel("snakeEJB", "client", null, "groundEAR", JavaEEFacetConstants.EJB_3, true);
runAndVerify(dm);
}
public void testEJB30_AddToEAR_ChangedClientSourceFolder_WithDD() throws Exception {
IDataModel dm = getEJBDataModel("lionEJB", null, "barSrc", "pinEAR", JavaEEFacetConstants.EJB_3, true);
runAndVerify(dm);
}
public void testEJB30_AddToEAR_ChangedEJBClientName_ChangedClientSourceFolder_WithDD() throws Exception {
IDataModel dm = getEJBDataModel("monkeyEJB", "fooFooClient", "fooSrc", "outsideEAR", JavaEEFacetConstants.EJB_3, true);
runAndVerify(dm);
}
public void testEJB31_Defaults_WithDD() throws Exception {
IDataModel dm = getEJBDataModel("spiderEJB", null, null, null, JavaEEFacetConstants.EJB_31, true);
runAndVerify(dm);
}
public void testEJB31_AddToEAR_Defaults_WithDD() throws Exception {
IDataModel dm = getEJBDataModel("yogiEJB", null, null, "bearEAR", JavaEEFacetConstants.EJB_31, true);
runAndVerify(dm);
}
public void testEJB31_AddToEAR_NoClient_WithDD() throws Exception {
IDataModel dm = getEJBDataModel("booEJB", null, null, "trymeEAR", JavaEEFacetConstants.EJB_31, false, true);
runAndVerify(dm);
}
public void testEJB31_AddToEAR_ChangedEJBClientName_WithDD() throws Exception {
IDataModel dm = getEJBDataModel("starEJB", "rockstarclient", null, "rockEAR", JavaEEFacetConstants.EJB_31, true);
runAndVerify(dm);
}
public void testEJB31_AddToEAR_ChangedClientSourceFolder_WithDD() throws Exception {
IDataModel dm = getEJBDataModel("sharkEJB", null, "fishySrc", "fishEAR", JavaEEFacetConstants.EJB_31, true);
runAndVerify(dm);
}
public void testEJB31_AddToEAR_ChangedEJBClientName_ChangedClientSourceFolder_WithDD() throws Exception {
IDataModel dm = getEJBDataModel("trainEJB", "booClient", "booSrc", "fastEAR", JavaEEFacetConstants.EJB_31, true);
runAndVerify(dm);
}
/**
* Creates and returns an EJB Data Model with the given name and of the given version.
* Can also set the clientName to be different then the default.
* If earName is not null then AppClient will be added to the EAR with earName, and if appropriate
* with or without a deployment descriptor.
*
* @param projName name of the project to create
* @param clientName name of client jar to create, if NULL or earName is NULL then don't create one
* @param clientSourceFolder source folder for client, use default if value is NULL, ignored if clientName is NULL
* @param earName name of the EAR to add the project too, if NULL then don't add to an EAR
* @param version version of EJB to use
* @param createDD only used if version is JEE5, if true then create DD else don't
* @return an EJB Model with the appropriate properties set
*/
public static IDataModel getEJBDataModel(String projName, String clientName, String clientSourceFolder, String earName, IProjectFacetVersion version, boolean createDD) {
IDataModel dm = DataModelFactory.createDataModel(new EjbFacetProjectCreationDataModelProvider());
dm.setProperty(IFacetProjectCreationDataModelProperties.FACET_PROJECT_NAME, projName);
FacetDataModelMap facetMap = (FacetDataModelMap) dm.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP);
IDataModel facetModel = facetMap.getFacetDataModel(IJ2EEFacetConstants.EJB);
facetModel.setProperty(IFacetDataModelProperties.FACET_VERSION, version);
if(earName != null) {
dm.setProperty(IJ2EEFacetProjectCreationDataModelProperties.ADD_TO_EAR, true);
dm.setProperty(IJ2EEFacetProjectCreationDataModelProperties.EAR_PROJECT_NAME, earName);
//only create client if given a client name, and is added to EAR
if(clientName != null) {
facetModel.setBooleanProperty(IEjbFacetInstallDataModelProperties.CREATE_CLIENT, true);
facetModel.setStringProperty(IEjbFacetInstallDataModelProperties.CLIENT_NAME, clientName);
//use default source folder unless different name is given
if(clientSourceFolder != null) {
facetModel.setStringProperty(IEjbFacetInstallDataModelProperties.CLIENT_SOURCE_FOLDER, clientSourceFolder);
}
}
} else {
dm.setProperty(IJ2EEFacetProjectCreationDataModelProperties.ADD_TO_EAR, false);
}
facetModel.setBooleanProperty(IJ2EEFacetInstallDataModelProperties.GENERATE_DD, createDD);
if(version.equals(JavaEEFacetConstants.EJB_31))
{
IDataModel javaFacetModel = facetMap.getFacetDataModel(IJ2EEFacetConstants.JAVA);
javaFacetModel.setProperty(IFacetDataModelProperties.FACET_VERSION, JavaEEFacetConstants.JAVA_6);
}
else{
IDataModel javaFacetModel = facetMap.getFacetDataModel(IJ2EEFacetConstants.JAVA);
javaFacetModel.setProperty(IFacetDataModelProperties.FACET_VERSION, JavaEEFacetConstants.JAVA_5);
}
return dm;
}
/**
* Creates and returns an EJB Data Model with the given name and of the given version.
* Can also set the clientName to be different then the default, or choose not to have a client.
* If earName is not null then AppClient will be added to the EAR with earName, and if appropriate
* with or without a deployment descriptor.
*
* Created so EJB's could be created without clients.
*
* @param projName name of the project to create
* @param clientName name of client jar to create, if NULL or earName is NULL then don't create one
* @param clientSourceFolder source folder for client, use default if value is NULL, ignored if clientName is NULL
* @param earName name of the EAR to add the project too, if NULL then don't add to an EAR
* @param version version of EJB to use
* @param createClient if True and earName not NULL then create with client, else dont
* @param createDD only used if version is JEE5, if true then create DD else don't
* @return an EJB Model with the appropriate properties set
*/
public static IDataModel getEJBDataModel(String projName, String clientName, String clientSourceFolder, String earName, IProjectFacetVersion version, boolean createCleint, boolean createDD) {
IDataModel dm = getEJBDataModel(projName, clientName, clientSourceFolder, earName, version, createDD);
FacetDataModelMap facetMap = (FacetDataModelMap) dm.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP);
IDataModel facetModel = facetMap.getFacetDataModel(IJ2EEFacetConstants.EJB);
facetModel.setBooleanProperty(IEjbFacetInstallDataModelProperties.CREATE_CLIENT, createCleint);
return dm;
}
}