/*
* (C) Copyright 2011 Nuxeo SA (http://nuxeo.com/) and contributors.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser General Public License
* (LGPL) version 2.1 which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/lgpl.html
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* Contributors:
* Julien Carsique
*
*/
package org.nuxeo.common.utils;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import org.nuxeo.common.utils.FileVersion;
public class FileVersionTest {
@Test
public void test() {
// test version containing only major part
assertArrayEquals(new FileVersion("1").getSplitVersion(),
new Integer[] { 1 });
FileVersion fv = new FileVersion("1-qualifier");
assertArrayEquals(fv.getSplitVersion(), new Integer[] { 1 });
assertEquals("-qualifier", fv.getQualifier());
fv = new FileVersion("1_qualifier");
assertArrayEquals(fv.getSplitVersion(), new Integer[] { 1 });
assertEquals("_qualifier", fv.getQualifier());
// test caja versions
fv = new FileVersion("r1234");
assertArrayEquals(fv.getSplitVersion(), new Integer[] { 1234 });
fv = new FileVersion("r1234-qualifier");
assertArrayEquals(fv.getSplitVersion(), new Integer[] { 1234 });
assertEquals("-qualifier", fv.getQualifier());
fv = new FileVersion("r1234_qualifier");
assertArrayEquals(fv.getSplitVersion(), new Integer[] { 1234 });
assertEquals("_qualifier", fv.getQualifier());
assertArrayEquals(new FileVersion("1.3.3").getSplitVersion(),
new Integer[] { 1, 3, 3 });
assertEquals(new FileVersion("1.3.3").getQualifier(), "");
assertArrayEquals(new FileVersion("1.3.3_01").getSplitVersion(),
new Integer[] { 1, 3, 3 });
assertEquals(new FileVersion("1.3.3_01").getQualifier(), "_01");
assertArrayEquals(
new FileVersion("1.1-BETA5-incubating").getSplitVersion(),
new Integer[] { 1, 1 });
assertEquals(new FileVersion("1.1-BETA5-incubating").getQualifier(),
"-BETA5-incubating");
assertArrayEquals(new FileVersion("3.3.1.GA-NX").getSplitVersion(),
new Integer[] { 3, 3, 1 });
assertEquals(new FileVersion("3.3.1.GA-NX").getQualifier(), ".GA-NX");
assertArrayEquals(new FileVersion("1.3.1-NXP-7750").getSplitVersion(),
new Integer[] { 1, 3, 1 });
assertEquals(new FileVersion("1.3.1-NXP-7750").getQualifier(),
"-NXP-7750");
assertArrayEquals(new FileVersion("3.0-NX3.2").getSplitVersion(),
new Integer[] { 3, 0 });
assertEquals(new FileVersion("3.0-NX3.2").getQualifier(), "-NX3.2");
assertArrayEquals(new FileVersion("0.4.0-r1096750").getSplitVersion(),
new Integer[] { 0, 4, 0 });
assertEquals(new FileVersion("0.4.0-r1096750").getQualifier(),
"-r1096750");
assertTrue("5.5 must be greater than 5.4",
new FileVersion("5.5").compareTo(new FileVersion("5.4")) > 0);
assertTrue("5.5-SNAPSHOT must be greater than 5.4", new FileVersion(
"5.5-SNAPSHOT").compareTo(new FileVersion("5.4")) > 0);
assertTrue("5.5 must be greater than 5.4-SNAPSHOT", new FileVersion(
"5.5").compareTo(new FileVersion("5.4-SNAPSHOT")) > 0);
assertTrue("5.5 must be greater than 5.5-SNAPSHOT", new FileVersion(
"5.5").compareTo(new FileVersion("5.5-SNAPSHOT")) > 0);
assertTrue("5.5-anything must be greater than 5.5", new FileVersion(
"5.5-anything").compareTo(new FileVersion("5.5")) > 0);
assertTrue("5.5_01 must be greater than 5.5",
new FileVersion("5.5_01").compareTo(new FileVersion("5.5")) > 0);
assertTrue(
"5.5_01 must be lesser than 5.5.1",
new FileVersion("5.5_01").compareTo(new FileVersion("5.5.1")) < 0);
assertTrue("5.5-NXP must be lesser than 5.5.1", new FileVersion(
"5.5-NXP").compareTo(new FileVersion("5.5.1")) < 0);
assertTrue("5.5-anything must be greater than 5.5-SNAPSHOT",
new FileVersion("5.5-anything").compareTo(new FileVersion(
"5.5-SNAPSHOT")) > 0);
assertTrue("5.5.1 must be greater than 5.5",
new FileVersion("5.5.1").compareTo(new FileVersion("5.5")) > 0);
assertTrue("5.5.1 must be greater than 5.5-SNAPSHOT", new FileVersion(
"5.5.1").compareTo(new FileVersion("5.5-SNAPSHOT")) > 0);
assertTrue("5.5.1 must be greater than 5.5-anything", new FileVersion(
"5.5.1").compareTo(new FileVersion("5.5-anything")) > 0);
assertTrue("5.5.1-SNAPSHOT must be greater than 5.5-SNAPSHOT",
new FileVersion("5.5.1-SNAPSHOT").compareTo(new FileVersion(
"5.5-SNAPSHOT")) > 0);
assertEquals("5.5-SNAPSHOT must be equal to 5.5-SNAPSHOT",
new FileVersion("5.5-SNAPSHOT"),
new FileVersion("5.5-SNAPSHOT"));
// Release candidate, alpha and beta versions must be lower than the
// final version
assertTrue(
"5.5 must be greater than 5.5-RC1",
new FileVersion("5.5").compareTo(new FileVersion("5.5-RC1")) > 0);
assertTrue("5.5-RC2 must be greater than 5.5-RC1", new FileVersion(
"5.5-RC2").compareTo(new FileVersion("5.5-RC1")) > 0);
assertTrue(
"5.5 must be greater than 5.5-alpha1",
new FileVersion("5.5").compareTo(new FileVersion("5.5-alpha1")) > 0);
assertTrue(
"5.5 must be greater than 5.5-BETA6",
new FileVersion("5.5").compareTo(new FileVersion("5.5-BETA6")) > 0);
// Date-based versions must be lower than the final version
assertTrue("5.5 must be greater than 5.5-I20120101_0115",
new FileVersion("5.5").compareTo(new FileVersion(
"5.5-I20120101_0115")) > 0);
assertTrue(
"5.5.1-I20120101_0115 must be greater than 5.5",
new FileVersion("5.5.1-I20120101_0115").compareTo(new FileVersion(
"5.5")) > 0);
assertTrue(
"5.5.1-I20120101_0115 must be greater than 5.5.1-I20110101_0115",
new FileVersion("5.5.1-I20120101_0115").compareTo(new FileVersion(
"5.5.1-I20110101_0115")) > 0);
}
}