package com.liferay.ide.maven.core.tests;
import com.liferay.ide.core.ILiferayProject;
import com.liferay.ide.core.LiferayCore;
import com.liferay.ide.core.util.CoreUtil;
import com.liferay.ide.project.core.model.NewLiferayPluginProjectOp;
import com.liferay.ide.project.core.model.PluginType;
import com.liferay.ide.server.remote.IRemoteServerPublisher;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.eclipse.core.runtime.IPath;
import org.eclipse.wst.common.componentcore.ComponentCore;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
import org.junit.Test;
/**
* @author Gregory Amerson
*/
@SuppressWarnings( "restriction" )
public class LiferayMavenProjectTests extends LiferayMavenProjectTestCase
{
@Test
public void testNewLiferayHookProject() throws Exception
{
NewLiferayPluginProjectOp op = NewLiferayPluginProjectOp.TYPE.instantiate();
op.setProjectName( "hookproject" );
op.setProjectProvider( "maven" );
op.setPluginType( PluginType.hook );
createTestBundleProfile( op );
final IProject project = base.createProject( op );
assertNotNull( project );
String pomContents = CoreUtil.readStreamToString( project.getFile( "pom.xml" ).getContents() );
assertTrue( pomContents.contains( "<pluginType>hook</pluginType>" ) );
assertTrue( pomContents.contains( "<artifactId>liferay-maven-plugin</artifactId>" ) );
assertTrue( pomContents.contains( "<artifactId>portal-service</artifactId>" ) );
project.build( IncrementalProjectBuilder.INCREMENTAL_BUILD, monitor );
waitForJobsToComplete();
IVirtualComponent projectComponent = ComponentCore.createComponent( project );
assertEquals( "hookproject-hook", projectComponent.getDeployedName() );
}
@Test
public void testNewLiferayLayouttplProject() throws Exception
{
NewLiferayPluginProjectOp op = NewLiferayPluginProjectOp.TYPE.instantiate();
op.setProjectName( "template" );
op.setProjectProvider( "maven" );
op.setPluginType( PluginType.layouttpl );
createTestBundleProfile( op );
final IProject project = base.createProject( op );
assertNotNull( project );
String pomContents = CoreUtil.readStreamToString( project.getFile( "pom.xml" ).getContents() );
assertTrue( pomContents.contains( "<pluginType>layouttpl</pluginType>" ) );
assertTrue( pomContents.contains( "<artifactId>liferay-maven-plugin</artifactId>" ) );
project.build( IncrementalProjectBuilder.INCREMENTAL_BUILD, monitor );
waitForJobsToComplete();
IVirtualComponent projectComponent = ComponentCore.createComponent( project );
assertEquals( "template-layouttpl", projectComponent.getDeployedName() );
}
@Test
public void testNewLiferayPortletProject() throws Exception
{
if( shouldSkipBundleTests() ) return;
NewLiferayPluginProjectOp op = NewLiferayPluginProjectOp.TYPE.instantiate();
op.setProjectName( "mvc" );
op.setProjectProvider( "maven" );
op.setPortletFramework( "mvc" );
createTestBundleProfile( op );
final IProject project = base.createProject( op );
assertNotNull( project );
String pomContents = CoreUtil.readStreamToString( project.getFile( "pom.xml" ).getContents() );
assertTrue( pomContents.contains( "<liferay.version>" ) );
assertTrue( pomContents.contains( "<artifactId>liferay-maven-plugin</artifactId>" ) );
assertTrue( pomContents.contains( "<artifactId>portal-service</artifactId>" ) );
project.build( IncrementalProjectBuilder.INCREMENTAL_BUILD, monitor );
waitForJobsToComplete();
IVirtualComponent projectComponent = ComponentCore.createComponent( project );
assertEquals( "mvc-portlet", projectComponent.getDeployedName() );
}
@Test
public void testNewLiferayRemoteServiceBuilderProject() throws Exception
{
if( shouldSkipBundleTests() ) return;
NewLiferayPluginProjectOp op = NewLiferayPluginProjectOp.TYPE.instantiate();
op.setProjectName( "servicebuilder" );
op.setProjectProvider( "maven" );
op.setPluginType( PluginType.servicebuilder );
createTestBundleProfile( op );
final IProject project = base.createProject( op, op.getProjectName() + "-portlet" );
assertEquals( project.getName(), op.getProjectName() + "-portlet" );
assertNotNull( project );
String pomContents = CoreUtil.readStreamToString( project.getFile( "pom.xml" ).getContents() );
assertTrue( pomContents.contains( "<artifactId>servicebuilder-portlet</artifactId>" ) );
assertTrue( pomContents.contains( "<artifactId>liferay-maven-plugin</artifactId>" ) );
assertTrue( pomContents.contains( "<name>servicebuilder Portlet</name>" ) );
project.build( IncrementalProjectBuilder.INCREMENTAL_BUILD, monitor );
waitForJobsToComplete();
IVirtualComponent projectComponent = ComponentCore.createComponent( project );
assertEquals( "servicebuilder-portlet", projectComponent.getDeployedName() );
final ILiferayProject liferayProject = LiferayCore.create( project );
final IRemoteServerPublisher publisher = liferayProject.adapt( IRemoteServerPublisher.class );
final IPath warPath = publisher.publishModuleFull( monitor );
assertTrue( warPath.toFile().exists() );
}
@Test
public void testNewLiferayThemeProject() throws Exception
{
NewLiferayPluginProjectOp op = NewLiferayPluginProjectOp.TYPE.instantiate();
op.setProjectName( "mytheme" );
op.setProjectProvider( "maven" );
op.setPluginType( PluginType.theme );
createTestBundleProfile( op );
final IProject project = base.createProject( op );
assertNotNull( project );
String pomContents = CoreUtil.readStreamToString( project.getFile( "pom.xml" ).getContents() );
assertTrue( pomContents.contains( "<pluginType>theme</pluginType>" ) );
assertTrue( pomContents.contains( "<artifactId>liferay-maven-plugin</artifactId>" ) );
project.build( IncrementalProjectBuilder.INCREMENTAL_BUILD, monitor );
waitForJobsToComplete();
IVirtualComponent projectComponent = ComponentCore.createComponent( project );
assertEquals( "mytheme-theme", projectComponent.getDeployedName() );
}
}