package org.apache.maven.plugin.deb; import org.apache.maven.artifact.DefaultArtifact; import org.apache.maven.artifact.versioning.VersionRange; import org.apache.maven.plugin.MojoFailureException; import org.codehaus.plexus.PlexusTestCase; import java.util.Arrays; import java.util.HashSet; /** * @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a> * @version $Id$ */ public class ControlFileGeneratorTest extends PlexusTestCase { public void testPackageName() throws Exception { ControlFileGenerator generator = (ControlFileGenerator) lookup( ControlFileGenerator.ROLE ); generator.setGroupId( "myGroup" ); generator.setArtifactId( "myArtifact" ); assertEquals( "mygroup-myartifact", generator.getDebianPackageName() ); } public void testDescription() throws Exception { ControlFileGenerator generator = (ControlFileGenerator) lookup( ControlFileGenerator.ROLE ); // ---------------------------------------------------------------------- // Description from POM. // ---------------------------------------------------------------------- generator.setDescription( "Short description. Long description." ); assertEquals( "Short description.\n" + " Long description.", generator.getDebianDescription() ); generator = (ControlFileGenerator) lookup( ControlFileGenerator.ROLE ); // ---------------------------------------------------------------------- // Short description is set. // ---------------------------------------------------------------------- generator.setShortDescription( "My short description." ); generator.setDescription( "Description." ); assertEquals( "My short description.\n" + " Description.", generator.getDebianDescription() ); // ---------------------------------------------------------------------- // A long description with blank lines. // ---------------------------------------------------------------------- generator.setDescription( "Maven was originally started as an attempt to simplify the build \n" + "processes in the Jakarta Turbine project. There were several \n" + "projects each with their own Ant build files that were all \n" + "slightly different and JARs were checked into CVS. We wanted \n" + "a standard way to build the projects, a clear definition of \n" + "what the project consisted of, an easy way to publish \n" + "project information and a way to share JARs across several \n" + "projects.\n" + "\n" + "What resulted is a tool that can now be used for building and \n" + "managing any Java-based project. We hope that we have \n" + "created something that will make the day-to-day work of \n" + "Java developers easier and generally help with the \n" + "comprehension of any Java-based project." ); assertEquals( "My short description.\n" + " Maven was originally started as an attempt to simplify the build\n" + " processes in the Jakarta Turbine project. There were several\n" + " projects each with their own Ant build files that were all\n" + " slightly different and JARs were checked into CVS. We wanted\n" + " a standard way to build the projects, a clear definition of\n" + " what the project consisted of, an easy way to publish\n" + " project information and a way to share JARs across several\n" + " projects.\n" + ".\n" + " What resulted is a tool that can now be used for building and\n" + " managing any Java-based project. We hope that we have\n" + " created something that will make the day-to-day work of\n" + " Java developers easier and generally help with the\n" + " comprehension of any Java-based project.", generator.getDebianDescription() ); } public void testMaintainerRevision() throws Exception { ControlFileGenerator generator = (ControlFileGenerator) lookup( ControlFileGenerator.ROLE ); try { generator.getVersion(); fail("Expected MojoFailureException."); } catch ( MojoFailureException e ) { // expected } generator.setProjectVersion( "1.0" ); assertEquals( "1.0", generator.getVersion().projectVersion ); assertEquals( 0, generator.getVersion().maintainerRevision ); assertNull( generator.getVersion().timestamp ); generator.setProjectVersion( "1.0-2" ); assertEquals( "1.0", generator.getVersion().projectVersion ); assertEquals( 2, generator.getVersion().maintainerRevision ); assertNull( generator.getVersion().timestamp ); generator.setProjectVersion( "1.0-SNAPSHOT"); assertEquals( "1.0", generator.getVersion().projectVersion ); assertEquals( 0, generator.getVersion().maintainerRevision ); assertNull( generator.getVersion().timestamp ); generator.setProjectVersion( "1.0-2-SNAPSHOT" ); assertEquals( "1.0", generator.getVersion().projectVersion ); assertEquals( 2, generator.getVersion().maintainerRevision ); assertNull( generator.getVersion().timestamp ); generator.setProjectVersion( "1.0-2-SNAPSHOT" ); generator.setTimestamp( "20080703.084400" ); assertEquals( "1.0", generator.getVersion().projectVersion ); assertEquals( 2, generator.getVersion().maintainerRevision ); assertEquals( "20080703.084400", generator.getVersion().timestamp ); } public void testDependsGeneration() throws Exception { ControlFileGenerator generator = (ControlFileGenerator) lookup( ControlFileGenerator.ROLE ); assertNull( generator.getDepends() ); VersionRange v1_0 = VersionRange.createFromVersionSpec("1.0"); generator.setDependencies(new HashSet(Arrays.asList(new DebianDependency[] { new DebianDependency(new DefaultArtifact("groupId", "artifactId", v1_0, "runtime", "dpk", "dpkg", null)) }))); } }