/*******************************************************************************
* Copyright (c) 2011 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.maven.ui.bot.test.project;
import static org.junit.Assert.assertTrue;
import org.jboss.ide.eclipse.as.reddeer.server.requirement.ServerReqType;
import org.jboss.ide.eclipse.as.reddeer.server.requirement.ServerRequirement.JBossServer;
import org.jboss.reddeer.eclipse.core.resources.ProjectItem;
import org.jboss.reddeer.eclipse.jdt.ui.ProjectExplorer;
import org.jboss.reddeer.eclipse.jst.j2ee.ui.project.facet.EarProjectFirstPage;
import org.jboss.reddeer.eclipse.jst.j2ee.ui.project.facet.EarProjectInstallPage;
import org.jboss.reddeer.eclipse.jst.j2ee.ui.project.facet.EarProjectWizard;
import org.jboss.reddeer.eclipse.jst.j2ee.wizard.NewJ2EEComponentSelectionPage;
import org.jboss.reddeer.eclipse.ui.perspectives.JavaEEPerspective;
import org.jboss.reddeer.requirements.cleanworkspace.CleanWorkspaceRequirement.CleanWorkspace;
import org.jboss.reddeer.requirements.openperspective.OpenPerspectiveRequirement.OpenPerspective;
import org.jboss.reddeer.requirements.server.ServerReqState;
import org.jboss.reddeer.swt.impl.menu.ContextMenu;
import org.jboss.tools.maven.ui.bot.test.AbstractMavenSWTBotTest;
import org.junit.Test;
/**
* @author Rastislav Wagner
*
*/
@OpenPerspective(JavaEEPerspective.class)
@JBossServer(state=ServerReqState.PRESENT, type=ServerReqType.WILDFLY8x)
public class EARProjectTest extends AbstractMavenSWTBotTest{
public static final String WAR_PROJECT_NAME="earWeb";
public static final String EJB_PROJECT_NAME="earEJB";
public static final String EAR_PROJECT_NAME="ear";
@Test
public void testEARProject() throws InterruptedException{
createEARProject();
prepareProject(EAR_PROJECT_NAME+"EJB", "..Maven build...","ejb");
prepareProject(EAR_PROJECT_NAME+"Connector", "..Maven build...","rar");
prepareProject(EAR_PROJECT_NAME+"Client", "..Maven build...","app-client");
prepareProject(EAR_PROJECT_NAME+"Web","..Maven build...","war");
convertToMavenProject(EAR_PROJECT_NAME, "ear",true);
buildProject(EAR_PROJECT_NAME, "..Maven build...", "clean package",true);
ProjectItem targetFiles = getTargetFiles(EAR_PROJECT_NAME);
assertTrue(targetFiles.getChild(EAR_PROJECT_NAME+"EJB-0.0.1-SNAPSHOT.jar") != null);
assertTrue(targetFiles.getChild(EAR_PROJECT_NAME+"Client-0.0.1-SNAPSHOT.jar") != null);
assertTrue(targetFiles.getChild(EAR_PROJECT_NAME+"Connector-0.0.1-SNAPSHOT.rar") != null);
assertTrue(targetFiles.getChild(EAR_PROJECT_NAME+"Web-0.0.1-SNAPSHOT.war") != null);
}
public ProjectItem getTargetFiles(String projectName){
ProjectExplorer pe = new ProjectExplorer();
pe.open();
pe.getProject(projectName).select();
new ContextMenu("Refresh").select();
return pe.getProject(projectName).getProjectItem("target",projectName+"-0.0.1-SNAPSHOT");
}
public void prepareProject(String projectName, String mavenBuild,String packaging){
convertToMavenProject(projectName,packaging, false);
buildProject(projectName, mavenBuild, "clean install",true);
checkPackaging(projectName, packaging);
}
public void createEARProject(){
EarProjectWizard earw = new EarProjectWizard();
earw.open();
EarProjectFirstPage ef = new EarProjectFirstPage();
ef.setProjectName(EAR_PROJECT_NAME);
ef.setTargetRuntime("<None>");
earw.next();
EarProjectInstallPage es = new EarProjectInstallPage();
NewJ2EEComponentSelectionPage p = es.newModule();
p.finish();
earw.finish();
}
}