/*******************************************************************************
* Copyright (c) 2012 VMWare, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* VMWare, Inc. - initial API and implementation
*******************************************************************************/
package org.grails.ide.eclipse.test;
import org.grails.ide.eclipse.core.model.GrailsVersion;
import junit.framework.TestCase;
/**
* Tests for the GrailsVersion class.
* @author Kris De Volder
*/
public class GrailsVersionTest extends TestCase {
public void testSameVersions() throws Exception {
assertEquals(0, new GrailsVersion("1.3.5").compareTo(new GrailsVersion("1.3.5")));
assertTrue(new GrailsVersion("1.3.5").equals(new GrailsVersion("1.3.5")));
}
public void testCompareVersions() throws Exception {
assertEquals(-1, new GrailsVersion("1.2").compareTo(new GrailsVersion("1.3.5")));
assertEquals(-1, new GrailsVersion("1.2").compareTo(new GrailsVersion("1.2.1")));
assertEquals(+1, new GrailsVersion("1.2").compareTo(new GrailsVersion("1.1.1")));
assertEquals(GrailsVersion.V_1_2, new GrailsVersion("1.2"));
assertEquals(-1, GrailsVersion.V_2_0_.compareTo(GrailsVersion.V_2_0_0_M2));
assertEquals(+1, GrailsVersion.V_2_0_0.compareTo(GrailsVersion.V_2_0_0_M2));
}
public void testUnkownVersions() throws Exception {
assertEquals(GrailsVersion.UNKNOWN, new GrailsVersion(null));
assertEquals(-1, sign(GrailsVersion.UNKNOWN.compareTo(new GrailsVersion("garbage-string"))));
}
/**
* @param compareTo
* @return
*/
private int sign(int num) {
if (num < 0)
return -1;
else if (num > 0) {
return 1;
} else {
return 0;
}
}
public void testVersionString() throws Exception {
assertEquals("1.3.5", new GrailsVersion("1.3.5").getVersionString());
}
public void testToString() throws Exception {
assertEquals("1.3.4.BUILD-SNAPSHOT", new GrailsVersion("1.3.4.BUILD-SNAPSHOT").toString());
assertEquals("1.3.4", new GrailsVersion("1.3.4").toString());
assertEquals("<##unparseable##>(1.3.4.A.B)", new GrailsVersion("1.3.4.A.B").toString());
}
public void testIsRelease() throws Exception {
assertTrue(new GrailsVersion("1.3.7").isRelease());
assertTrue(new GrailsVersion("2.0.0").isRelease());
assertFalse(new GrailsVersion("2.0.0.M2").isRelease());
}
public void testBuildSnapshot() throws Exception {
assertEquals(+1, sign(new GrailsVersion("1.3.4.BUILD-SNAPSHOT").compareTo(new GrailsVersion("1.3.3.BUILD-SNAPSHOT"))));
assertEquals(+1, sign(new GrailsVersion("1.3.4.BUILD-SNAPSHOT").compareTo(new GrailsVersion("1.3.3"))));
assertEquals( 0, sign(new GrailsVersion("1.3.4.BUILD-SNAPSHOT").compareTo(new GrailsVersion("1.3.4.BUILD-SNAPSHOT"))));
assertEquals(+1, sign(new GrailsVersion("1.3.4.BUILD-SNAPSHOT").compareTo(new GrailsVersion("1.3.4.RC1"))));
// assertEquals(-1, sign(new GrailsVersion("1.3.4.BUILD-SNAPSHOT").compareTo(new GrailsVersion("1.3.4.1"))));
assertEquals(-1, sign(new GrailsVersion("1.3.4.BUILD-SNAPSHOT").compareTo(new GrailsVersion("1.3.4"))));
assertEquals(-1, sign(new GrailsVersion("1.3.3.BUILD-SNAPSHOT").compareTo(new GrailsVersion("1.3.4.BUILD-SNAPSHOT"))));
assertEquals(-1, sign(new GrailsVersion("1.3.3" ).compareTo(new GrailsVersion("1.3.4.BUILD-SNAPSHOT"))));
assertEquals( 0, sign(new GrailsVersion("1.3.4.BUILD-SNAPSHOT").compareTo(new GrailsVersion("1.3.4.BUILD-SNAPSHOT"))));
assertEquals(+1, sign(new GrailsVersion("1.3.4" ).compareTo(new GrailsVersion("1.3.4.BUILD-SNAPSHOT"))));
// assertEquals(+1, sign(new GrailsVersion("1.3.4.1" ).compareTo(new GrailsVersion("1.3.4.BUILD-SNAPSHOT"))));
}
}