/******************************************************************************* * 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 java.io.File; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.wst.common.frameworks.datamodel.IDataModel; import org.eclipse.wst.common.project.facet.core.IProjectFacet; import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion; import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager; import org.jboss.tools.seam.core.SeamCorePlugin; import org.jboss.tools.seam.core.SeamProjectsSet; import org.jboss.tools.seam.core.project.facet.SeamRuntimeManager; import org.jboss.tools.seam.core.project.facet.SeamVersion; import org.jboss.tools.seam.internal.core.project.facet.ISeamFacetDataModelProperties; import org.jboss.tools.seam.ui.wizard.ISeamParameter; public class Seam20WARNewOperationTest extends Seam12WARNewOperationTest { protected IProjectFacet seam2Facet; protected IProjectFacetVersion seam2FacetVersion; public Seam20WARNewOperationTest(String name) { super(name); } @Override protected void setUp() throws Exception { assertSeamHomeAvailable(); seam2Facet = ProjectFacetsManager.getProjectFacet("jst.seam"); seam2FacetVersion = seam2Facet.getVersion("2.0"); File folder = getSeamHomeFolder(); SeamRuntimeManager.getInstance().addRuntime(SEAM_2_0_0, folder.getAbsolutePath(), SeamVersion.SEAM_2_0, true); SeamRuntimeManager.getInstance().findRuntimeByName(SEAM_2_0_0); super.setUp(); } @Override void setUpSeamProjects() { setUpSeamProject(warProject); } @Override protected String getSeamRTName() { return AbstractSeamNewOperationTest.SEAM_2_0_0; } @Override protected File getSeamHomeFolder() { return new File(System.getProperty(SEAM_2_0_HOME)).getAbsoluteFile(); } @Override protected IProjectFacetVersion getSeamFacetVersion() { return seam2FacetVersion; } @Override void assertNewConversationFilesAreCreatedSuccessfully(AdaptableRegistry data) { IEclipsePreferences seamFacetPrefs = SeamCorePlugin.getSeamPreferences(warProject); SeamProjectsSet seamPrjSet = new SeamProjectsSet(warProject); String sessionBeanPackagePath = getPackagePath(getSessionBeanPackageName(seamFacetPrefs)); IContainer seamProjectSrcActionFolder = seamPrjSet.getActionFolder(); IContainer seamProjectWebContentFolder = seamPrjSet.getViewsFolder(); String seamPageName = data.getValue(ISeamParameter.SEAM_PAGE_NAME); // seam-gen uses @interfaceName@ as class name since 2.0.1 // but seam-gen 2.0.0 uses @beanName@ (it's a bug of 2.0.0) // So we expect seam-gen 2.0.1 or higher here. String interfaceName = data.getValue(ISeamParameter.SEAM_LOCAL_INTERFACE_NAME); IResource seamBeanJava = seamProjectSrcActionFolder.findMember( sessionBeanPackagePath + "/" + interfaceName + ".java"); assertResourceIsCreatedAndHasNoProblems(seamBeanJava, seamProjectSrcActionFolder.toString() + "/" + sessionBeanPackagePath + "/" + interfaceName + ".java"); IResource seamPageNameXhtml = seamProjectWebContentFolder.findMember( seamPageName + ".xhtml"); assertResourceIsCreatedAndHasNoProblems(seamPageNameXhtml, seamProjectWebContentFolder.toString() + "/" + seamPageName + ".xhtml"); } @Override protected IDataModel createSeamDataModel(String deployType) { IDataModel model = super.createSeamDataModel(deployType); model.setStringProperty(ISeamFacetDataModelProperties.SEAM_RUNTIME_NAME, SEAM_2_0_0); return model; } }