/*
* Copyright 2012 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.github.jelmerk;
import org.gradle.api.Project;
import org.gradle.api.plugins.WarPlugin;
import org.gradle.api.tasks.bundling.War;
import org.gradle.invocation.DefaultGradle;
import org.gradle.testfixtures.ProjectBuilder;
import org.junit.Before;
import org.junit.Test;
import java.io.File;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
/**
* Tests {@link LiferayBasePlugin}
*
* @author Jelmer Kuperus
*/
public class LiferayBasePluginTest {
Project project;
DefaultGradle gradle;
LiferayBasePlugin plugin;
@Before
public void setup() {
project = ProjectBuilder.builder().build();
gradle = (DefaultGradle) project.getGradle();
plugin = new LiferayBasePlugin();
}
@Test
public void testAppliesBasePlugins() {
plugin.apply(project);
assertTrue(project.getPlugins().hasPlugin(WarPlugin.class));
}
@Test
public void testAddedExtension() {
plugin.apply(project);
assertTrue(project.getExtensions().getByName(LiferayBasePlugin.LIFERAY_EXTENSION_NAME)
instanceof LiferayPluginExtension);
}
@Test
public void testCreatedDeployTask() {
plugin.apply(project);
Deploy task = (Deploy) project.getTasks().getByName(LiferayBasePlugin.DEPLOY_TASK_NAME);
assertNotNull(task);
assertEquals(LiferayBasePlugin.LIFERAY_GROUP_NAME, task.getGroup());
assertTrue(task.getDependsOn().contains(project.getTasks().getByName(WarPlugin.WAR_TASK_NAME)));
}
@Test
public void testDeployTaskAutoDeployDirDefault() {
plugin.apply(project);
LiferayPluginExtension liferayExtension = project.getExtensions().getByType(LiferayPluginExtension.class);
liferayExtension.setAutoDeployDirName("liferay_extension_dir");
Deploy task = (Deploy) project.getTasks().getByName(LiferayBasePlugin.DEPLOY_TASK_NAME);
gradle.getBuildListenerBroadcaster().projectsEvaluated(gradle);
assertEquals(liferayExtension.getAutoDeployDir(), task.getAutoDeployDir());
}
@Test
public void testDeployTaskAutoDeployDirOverride() {
File override = new File("override");
plugin.apply(project);
LiferayPluginExtension liferayExtension = project.getExtensions().getByType(LiferayPluginExtension.class);
liferayExtension.setAutoDeployDirName("liferay_extension_dir");
Deploy task = (Deploy) project.getTasks().getByName(LiferayBasePlugin.DEPLOY_TASK_NAME);
task.setAutoDeployDir(override);
gradle.getBuildListenerBroadcaster().projectsEvaluated(gradle);
assertEquals(override, task.getAutoDeployDir());
}
@Test
public void testWarFileDefault() {
plugin.apply(project);
War warTask = (War) project.getTasks().getByName(WarPlugin.WAR_TASK_NAME);
Deploy task = (Deploy) project.getTasks().getByName(LiferayBasePlugin.DEPLOY_TASK_NAME);
gradle.getBuildListenerBroadcaster().projectsEvaluated(gradle);
assertEquals(warTask.getArchivePath(), task.getWarFile());
}
@Test
public void testWarFileOverride() {
File override = new File("override");
plugin.apply(project);
Deploy task = (Deploy) project.getTasks().getByName(LiferayBasePlugin.DEPLOY_TASK_NAME);
task.setWarFile(override);
gradle.getBuildListenerBroadcaster().projectsEvaluated(gradle);
assertEquals(override, task.getWarFile());
}
}