/*******************************************************************************
* Copyright (c) 2007 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is 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:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.seam.core.test.project.facet;
import java.io.IOException;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.osgi.util.NLS;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
import org.eclipse.wst.common.project.facet.core.IFacetedProject;
import org.jboss.tools.seam.internal.core.project.facet.ISeamFacetDataModelProperties;
import org.jboss.tools.seam.internal.core.project.facet.SeamFacetPreInstallDelegate;
import org.jboss.tools.test.util.JobUtils;
import org.jboss.tools.test.util.ResourcesUtils;
public class SeamFacetInstallDelegateTest extends AbstractSeamFacetTest {
public SeamFacetInstallDelegateTest(String name) {
super(name);
}
public void testCreateWar() throws CoreException, IOException {
final IFacetedProject fproj = createSeamWarProject("seamwar");
}
public void testCreateEar() throws CoreException, IOException {
final IFacetedProject fproj = createSeamEarProject("seamear");
}
public void testCreateCustomProject() throws CoreException, IOException {
IDataModel createSeamDataModel = createSeamDataModel("war");
createSeamDataModel.setProperty(ISeamFacetDataModelProperties.SESSION_BEAN_PACKAGE_NAME, "x.y.z");
final IFacetedProject fproj = createSeamProject("customProject",createSeamDataModel);
JobUtils.waitForIdle(500);
assertTrue(fproj.getProject().findMember("src/hot/x/y/z").exists());
}
public void testJiraJbide1544() throws CoreException, IOException {
final String catalogName = "catalog1";
final String schemaName = "schema1";
IDataModel createSeamDataModel = createSeamDataModel("war");
createSeamDataModel.setProperty(ISeamFacetDataModelProperties.DB_DEFAULT_CATALOG_NAME, catalogName);
createSeamDataModel.setProperty(ISeamFacetDataModelProperties.DB_DEFAULT_SCHEMA_NAME, schemaName);
IFacetedProject fproj = createSeamProject("customSchemaAndCatalog",createSeamDataModel);
IFile persistence = (IFile)fproj.getProject().findMember("src/main/META-INF/persistence.xml");
assertTrue(persistence.exists());
boolean schemaExists = ResourcesUtils.findLineInFile(persistence, ".*" +
NLS.bind(
SeamFacetPreInstallDelegate.PROP_DECL,
new String[]{
ISeamFacetDataModelProperties.DB_DEFAULT_SCHEMA_NAME.replace(".","\\."),
schemaName}));
boolean catalogExists = ResourcesUtils.findLineInFile(persistence, ".*" +
NLS.bind(
SeamFacetPreInstallDelegate.PROP_DECL,
new String[]{
ISeamFacetDataModelProperties.DB_DEFAULT_CATALOG_NAME.replace(".","\\."),
catalogName}));
assertTrue(
NLS.bind(
"Cannot find ''{0}'' property in persistence.xml file",
new String[]{
ISeamFacetDataModelProperties.DB_DEFAULT_SCHEMA_NAME})
, schemaExists);
assertTrue(
NLS.bind(
"Cannot find ''{0}'' property in persistence.xml file",
new String[]{
ISeamFacetDataModelProperties.DB_DEFAULT_CATALOG_NAME})
, catalogExists);
createSeamDataModel = createSeamDataModel("war");
fproj = createSeamProject("noSchemaAndCatalog",createSeamDataModel);
persistence = (IFile)fproj.getProject().findMember("src/main/META-INF/persistence.xml");
assertTrue(persistence.exists());
schemaExists = ResourcesUtils.findLineInFile(persistence, ".*" +
NLS.bind(
SeamFacetPreInstallDelegate.PROP_DECL,
new String[]{
ISeamFacetDataModelProperties.DB_DEFAULT_SCHEMA_NAME.replace(".","\\."),
".*"}));
catalogExists = ResourcesUtils.findLineInFile(persistence, ".*" +
NLS.bind(
SeamFacetPreInstallDelegate.PROP_DECL,
new String[]{
ISeamFacetDataModelProperties.DB_DEFAULT_CATALOG_NAME.replace(".","\\."),
".*"}));
assertTrue(
NLS.bind(
"''{0}'' property mustn't be in persistence.xml file",
new String[]{
ISeamFacetDataModelProperties.DB_DEFAULT_SCHEMA_NAME})
, !schemaExists);
assertTrue(
NLS.bind(
"''{0}'' property mustn't be in persistence.xml file",
new String[]{
ISeamFacetDataModelProperties.DB_DEFAULT_CATALOG_NAME})
, !catalogExists);
}
}