package org.codehaus.mojo.buildhelper; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import java.util.Properties; import junit.framework.TestCase; public class ParseVersionTest extends TestCase { public void testParseVersion() throws Exception { ParseVersionMojo mojo = new ParseVersionMojo(); mojo.setPropertyPrefix( "parsed" ); Properties props = new Properties(); // Test a junk version string mojo.parseVersion( "junk", props ); assertEquals( "0", props.getProperty( "parsed.majorVersion" ) ); assertEquals( "0", props.getProperty( "parsed.minorVersion" ) ); assertEquals( "0", props.getProperty( "parsed.incrementalVersion" ) ); assertEquals( "junk", props.getProperty( "parsed.qualifier" ) ); assertEquals( "0", props.getProperty( "parsed.buildNumber" ) ); assertEquals( "junk", props.getProperty( "parsed.osgiVersion" ) ); // Test a basic maven version string mojo.parseVersion( "1.0.0", props ); assertEquals( "1", props.getProperty( "parsed.majorVersion" ) ); assertEquals( "0", props.getProperty( "parsed.minorVersion" ) ); assertEquals( "0", props.getProperty( "parsed.incrementalVersion" ) ); assertEquals( "", props.getProperty( "parsed.qualifier" ) ); assertEquals( "0", props.getProperty( "parsed.buildNumber" ) ); assertEquals( "1.0.0", props.getProperty( "parsed.osgiVersion" ) ); // Test a version string with qualifier mojo.parseVersion( "2.3.4-beta-5", props ); assertEquals( "2", props.getProperty( "parsed.majorVersion" ) ); assertEquals( "3", props.getProperty( "parsed.minorVersion" ) ); assertEquals( "4", props.getProperty( "parsed.incrementalVersion" ) ); assertEquals( "beta-5", props.getProperty( "parsed.qualifier" ) ); assertEquals( "0", props.getProperty( "parsed.buildNumber" ) ); assertEquals( "2.3.4.beta-5", props.getProperty( "parsed.osgiVersion" ) ); // Test an osgi version string mojo.parseVersion( "2.3.4.beta_5", props ); assertEquals( "2", props.getProperty( "parsed.majorVersion" ) ); assertEquals( "3", props.getProperty( "parsed.minorVersion" ) ); assertEquals( "4", props.getProperty( "parsed.incrementalVersion" ) ); assertEquals( "beta_5", props.getProperty( "parsed.qualifier" ) ); assertEquals( "0", props.getProperty( "parsed.buildNumber" ) ); assertEquals( "2.3.4.beta_5", props.getProperty( "parsed.osgiVersion" ) ); // Test a snapshot version string mojo.parseVersion( "1.2.3-SNAPSHOT", props ); assertEquals( "1", props.getProperty( "parsed.majorVersion" ) ); assertEquals( "2", props.getProperty( "parsed.minorVersion" ) ); assertEquals( "3", props.getProperty( "parsed.incrementalVersion" ) ); assertEquals( "SNAPSHOT", props.getProperty( "parsed.qualifier" ) ); assertEquals( "0", props.getProperty( "parsed.buildNumber" ) ); assertEquals( "1.2.3.SNAPSHOT", props.getProperty( "parsed.osgiVersion" ) ); // Test a snapshot version string mojo.parseVersion( "2.0.17-SNAPSHOT", props ); assertEquals( "2", props.getProperty( "parsed.majorVersion" ) ); assertEquals( "0", props.getProperty( "parsed.minorVersion" ) ); assertEquals( "17", props.getProperty( "parsed.incrementalVersion" ) ); assertEquals( "SNAPSHOT", props.getProperty( "parsed.qualifier" ) ); assertEquals( "0", props.getProperty( "parsed.buildNumber" ) ); assertEquals( "2.0.17.SNAPSHOT", props.getProperty( "parsed.osgiVersion" ) ); // Test a version string with a build number mojo.parseVersion( "1.2.3-4", props ); assertEquals( "1", props.getProperty( "parsed.majorVersion" ) ); assertEquals( "2", props.getProperty( "parsed.minorVersion" ) ); assertEquals( "3", props.getProperty( "parsed.incrementalVersion" ) ); assertEquals( "", props.getProperty( "parsed.qualifier" ) ); assertEquals( "4", props.getProperty( "parsed.buildNumber" ) ); assertEquals( "1.2.3.4", props.getProperty( "parsed.osgiVersion" ) ); } public void testParseVersionNext() throws Exception { ParseVersionMojo mojo = new ParseVersionMojo(); mojo.setPropertyPrefix( "parsed" ); Properties props = new Properties(); // Test a junk version string mojo.parseVersion( "junk", props ); assertEquals( "1", props.getProperty( "parsed.nextMajorVersion" ) ); assertEquals( "1", props.getProperty( "parsed.nextMinorVersion" ) ); assertEquals( "1", props.getProperty( "parsed.nextIncrementalVersion" ) ); // Test a basic maven version string mojo.parseVersion( "1.0.0", props ); assertEquals( "2", props.getProperty( "parsed.nextMajorVersion" ) ); assertEquals( "1", props.getProperty( "parsed.nextMinorVersion" ) ); assertEquals( "1", props.getProperty( "parsed.nextIncrementalVersion" ) ); // Test a version string with qualifier mojo.parseVersion( "2.3.4-beta-5", props ); assertEquals( "3", props.getProperty( "parsed.nextMajorVersion" ) ); assertEquals( "4", props.getProperty( "parsed.nextMinorVersion" ) ); assertEquals( "5", props.getProperty( "parsed.nextIncrementalVersion" ) ); // Test an osgi version string mojo.parseVersion( "2.3.4.beta_5", props ); assertEquals( "3", props.getProperty( "parsed.nextMajorVersion" ) ); assertEquals( "4", props.getProperty( "parsed.nextMinorVersion" ) ); assertEquals( "5", props.getProperty( "parsed.nextIncrementalVersion" ) ); // Test a snapshot version string mojo.parseVersion( "1.2.3-SNAPSHOT", props ); assertEquals( "2", props.getProperty( "parsed.nextMajorVersion" ) ); assertEquals( "3", props.getProperty( "parsed.nextMinorVersion" ) ); assertEquals( "4", props.getProperty( "parsed.nextIncrementalVersion" ) ); // Test a snapshot version string mojo.parseVersion( "2.0.17-SNAPSHOT", props ); assertEquals( "3", props.getProperty( "parsed.nextMajorVersion" ) ); assertEquals( "1", props.getProperty( "parsed.nextMinorVersion" ) ); assertEquals( "18", props.getProperty( "parsed.nextIncrementalVersion" ) ); // Test a version string with a build number mojo.parseVersion( "1.2.3-4", props ); assertEquals( "2", props.getProperty( "parsed.nextMajorVersion" ) ); assertEquals( "3", props.getProperty( "parsed.nextMinorVersion" ) ); assertEquals( "4", props.getProperty( "parsed.nextIncrementalVersion" ) ); } }