ItoolsPackagerMojoTest.java
/**
* Copyright (c) 2024, Coreso SA (https://www.coreso.eu/) and TSCNET Services GmbH (https://www.tscnet.eu/)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* SPDX-License-Identifier: MPL-2.0
*/
package com.powsybl.itools;
import org.apache.commons.io.FileUtils;
import org.apache.maven.execution.DefaultMavenExecutionRequest;
import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.MojoExecution;
import org.apache.maven.plugin.testing.AbstractMojoTestCase;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.ProjectBuilder;
import org.apache.maven.project.ProjectBuildingRequest;
import org.codehaus.plexus.configuration.DefaultPlexusConfiguration;
import org.codehaus.plexus.configuration.PlexusConfiguration;
import org.eclipse.aether.DefaultRepositorySystemSession;
import java.io.File;
/**
* @author Damien Jeandemange {@literal <damien.jeandemange at artelys.com>}
*/
public class ItoolsPackagerMojoTest extends AbstractMojoTestCase {
private static final File BASEDIR = new File("src/test/resources/test-maven-project/");
private static final File POM_XML = new File(BASEDIR, "pom.xml");
private static final File TARGET = new File(BASEDIR, "target");
public static final String DEFAULT_PACKAGE_NAME = "itools-packager-test-project-1.0.0-SNAPSHOT";
ItoolsPackagerMojo mojo;
PlexusConfiguration configuration;
@Override
protected void setUp()
throws Exception {
// required
super.setUp();
MavenProject project = readMavenProject();
MavenSession session = newMavenSession(project);
MojoExecution execution = newMojoExecution("package-zip");
mojo = (ItoolsPackagerMojo) lookupConfiguredMojo(session, execution);
configuration = new DefaultPlexusConfiguration("configuration");
}
@Override
protected void tearDown()
throws Exception {
// required
super.tearDown();
FileUtils.deleteDirectory(TARGET); // cleanup
}
protected MavenProject readMavenProject() throws Exception {
MavenExecutionRequest request = new DefaultMavenExecutionRequest();
request.setBaseDirectory(BASEDIR);
ProjectBuildingRequest projectBuildingRequest = request.getProjectBuildingRequest();
projectBuildingRequest.setRepositorySession(new DefaultRepositorySystemSession());
MavenProject project = lookup(ProjectBuilder.class).build(POM_XML, projectBuildingRequest).getProject();
assertNotNull(project);
return project;
}
public void testDefaultConfiguration() throws Exception {
super.configureMojo(mojo, configuration);
assertNotNull(mojo);
mojo.execute();
assertTrue(new File(TARGET, DEFAULT_PACKAGE_NAME + ".zip").exists());
}
public void testPackageTypeTgz() throws Exception {
configuration.addChild("packageType", "tgz");
super.configureMojo(mojo, configuration);
assertNotNull(mojo);
mojo.execute();
assertTrue(new File(TARGET, DEFAULT_PACKAGE_NAME + ".tgz").exists());
}
}