/*******************************************************************************
* Copyright (c) 2008 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.ui.test.wizard;
import junit.framework.TestCase;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.ui.PlatformUI;
import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetDataModelProperties;
import org.eclipse.wst.web.ui.internal.wizards.NewProjectDataModelFacetWizard;
import org.jboss.tools.seam.core.SeamCoreMessages;
import org.jboss.tools.seam.ui.ISeamUiConstants;
import org.jboss.tools.seam.ui.internal.project.facet.SeamInstallWizardPage;
import org.jboss.tools.test.util.JobUtils;
import org.jboss.tools.test.util.WorkbenchUtils;
/**
* @author dazarov
* JBIDE-3254 tests
*/
public class PackageNamesTest extends TestCase{
NewProjectDataModelFacetWizard wizard;
SeamInstallWizardPage seamWizPg;
WizardDialog dialog;
protected void setUp() throws Exception {
wizard = (NewProjectDataModelFacetWizard)WorkbenchUtils.findWizardByDefId(ISeamUiConstants.NEW_SEAM_PROJECT_WIZARD_ID);
dialog = new WizardDialog(
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
wizard);
}
@Override
protected void tearDown() {
wizard.getDataModel().setStringProperty(IFacetDataModelProperties.FACET_PROJECT_NAME, "");
wizard.performCancel();
dialog.close();
}
public void testProjectNameWithSpaces() {
showWizard();
wizard.getDataModel().setStringProperty(IFacetDataModelProperties.FACET_PROJECT_NAME, "Seam Test Project");
String sessionBeanPkgName = seamWizPg.getSessionBeanPkgName();
String entityBeanPkgName = seamWizPg.getEntityBeanPkgName();
String testsPkgName = seamWizPg.getTestsPkgName();
assertEquals("org.domain.seamtestproject.session", sessionBeanPkgName);
assertEquals("org.domain.seamtestproject.entity", entityBeanPkgName);
assertEquals("org.domain.seamtestproject.test", testsPkgName);
}
private void showWizard() {
dialog.create();
dialog.setBlockOnOpen(false);
dialog.open();
// delay is needed to wait for dialog initialization is finished
// such as default runtime and configuration for seam wizard
JobUtils.delay(2000);
seamWizPg = (SeamInstallWizardPage)wizard.getPage(SeamCoreMessages.SEAM_INSTALL_WIZARD_PAGE_SEAM_FACET);
}
public void testProjectNameWithUnderlines() {
showWizard();
wizard.getDataModel().setStringProperty(IFacetDataModelProperties.FACET_PROJECT_NAME, "Seam_Test_Project");
String sessionBeanPkgName = seamWizPg.getSessionBeanPkgName();
String entityBeanPkgName = seamWizPg.getEntityBeanPkgName();
String testsPkgName = seamWizPg.getTestsPkgName();
assertEquals("org.domain.seamtestproject.session", sessionBeanPkgName);
assertEquals("org.domain.seamtestproject.entity", entityBeanPkgName);
assertEquals("org.domain.seamtestproject.test", testsPkgName);
}
public void testProjectNameWithMinuses() {
showWizard();
wizard.getDataModel().setStringProperty(IFacetDataModelProperties.FACET_PROJECT_NAME, "Seam-Test-Project");
String sessionBeanPkgName = seamWizPg.getSessionBeanPkgName();
String entityBeanPkgName = seamWizPg.getEntityBeanPkgName();
String testsPkgName = seamWizPg.getTestsPkgName();
assertEquals("org.domain.seamtestproject.session", sessionBeanPkgName);
assertEquals("org.domain.seamtestproject.entity", entityBeanPkgName);
assertEquals("org.domain.seamtestproject.test", testsPkgName);
}
public void testProjectNameWithMultipleDots() {
showWizard();
wizard.getDataModel().setStringProperty(IFacetDataModelProperties.FACET_PROJECT_NAME, "Seam...Test....Project");
String sessionBeanPkgName = seamWizPg.getSessionBeanPkgName();
String entityBeanPkgName = seamWizPg.getEntityBeanPkgName();
String testsPkgName = seamWizPg.getTestsPkgName();
assertEquals("org.domain.seam.test.project.session", sessionBeanPkgName);
assertEquals("org.domain.seam.test.project.entity", entityBeanPkgName);
assertEquals("org.domain.seam.test.project.test", testsPkgName);
}
}