blob: 5eee0e0e4308b94471cbe3c9c734541729758f82 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2013, 2014 Tasktop Technologies and others.
* 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:
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.gerrit.tests.core.client;
import static org.eclipse.mylyn.internal.gerrit.core.client.GerritVersion.isVersion24x;
import static org.eclipse.mylyn.internal.gerrit.core.client.GerritVersion.isVersion26OrLater;
import static org.eclipse.mylyn.internal.gerrit.core.client.GerritVersion.isVersion29OrLater;
import static org.eclipse.mylyn.internal.gerrit.core.client.GerritVersion.parseGerritVersion;
import junit.framework.TestCase;
import org.junit.Test;
import org.osgi.framework.Version;
public class GerritVersionTest extends TestCase {
@Test
public void testParse_null() throws Exception {
try {
parseGerritVersion(null);
fail("Expected IllegalArgumentException");
} catch (IllegalArgumentException e) {
// expected
}
}
@Test
public void testParse_empty() throws Exception {
try {
parseGerritVersion("");
fail("Expected IllegalArgumentException");
} catch (IllegalArgumentException e) {
// expected
}
}
@Test
public void testParse_invalid() throws Exception {
try {
parseGerritVersion("invalid");
fail("Expected IllegalArgumentException");
} catch (IllegalArgumentException e) {
assertTrue(e.getMessage().startsWith("Unrecognized version"));
}
}
@Test
public void testParse_21() throws Exception {
Version v = parseGerritVersion("2.1");
assertEquals(2, v.getMajor());
assertEquals(1, v.getMinor());
assertEquals(0, v.getMicro());
assertTrue(v.getQualifier().isEmpty());
}
@Test
public void testParse_254() throws Exception {
Version v = parseGerritVersion("2.5.4");
assertEquals(2, v.getMajor());
assertEquals(5, v.getMinor());
assertEquals(4, v.getMicro());
assertTrue(v.getQualifier().isEmpty());
}
@Test
public void testParse_26rc3() throws Exception {
Version v = parseGerritVersion("2.6-rc3");
assertEquals(2, v.getMajor());
assertEquals(6, v.getMinor());
assertEquals(0, v.getMicro());
assertEquals("rc3", v.getQualifier());
}
@Test
public void testParse_27rc2637g76c7890() throws Exception {
Version v = parseGerritVersion("2.7-rc2-637-g76c7890");
assertEquals(2, v.getMajor());
assertEquals(7, v.getMinor());
assertEquals(0, v.getMicro());
assertEquals("rc2-637-g76c7890", v.getQualifier());
}
@Test
public void testParse_V221NQT012() throws Exception {
Version v = parseGerritVersion("V2.2.1-NQT-012");
assertEquals(2, v.getMajor());
assertEquals(2, v.getMinor());
assertEquals(1, v.getMicro());
assertEquals("NQT-012", v.getQualifier());
}
@Test
public void testParse_123q() throws Exception {
Version v = parseGerritVersion("1.2.3-q");
assertEquals(1, v.getMajor());
assertEquals(2, v.getMinor());
assertEquals(3, v.getMicro());
assertEquals("q", v.getQualifier());
}
@Test
public void testParse_27xxx31() throws Exception {
Version v = parseGerritVersion("2.7-xxx3.1");
assertEquals(2, v.getMajor());
assertEquals(7, v.getMinor());
assertEquals(0, v.getMicro());
assertEquals("xxx3", v.getQualifier()); // '.1' is lost as '.' cannot be part of a qualifier
}
@Test
public void testParse_2861() throws Exception {
Version v = parseGerritVersion("2.8.6.1");
assertEquals(2, v.getMajor());
assertEquals(8, v.getMinor());
assertEquals(6, v.getMicro());
assertEquals("1", v.getQualifier());
}
@Test
public void testIsVersion26OrLater() throws Exception {
assertFalse(isVersion26OrLater(parseGerritVersion("2.5.9")));
assertFalse(isVersion26OrLater(parseGerritVersion("2.5.9-q")));
assertTrue(isVersion26OrLater(parseGerritVersion("2.6")));
assertTrue(isVersion26OrLater(parseGerritVersion("2.6-q")));
assertTrue(isVersion26OrLater(parseGerritVersion("2.6.0")));
assertTrue(isVersion26OrLater(parseGerritVersion("2.6.0-q")));
assertTrue(isVersion26OrLater(parseGerritVersion("2.6.1")));
assertTrue(isVersion26OrLater(parseGerritVersion("2.6.1-q")));
}
@Test
public void testIsVersion29OrLater() throws Exception {
assertFalse(isVersion29OrLater(parseGerritVersion("2.8.9")));
assertFalse(isVersion29OrLater(parseGerritVersion("2.8.9-q")));
assertTrue(isVersion29OrLater(parseGerritVersion("2.9")));
assertTrue(isVersion29OrLater(parseGerritVersion("2.9-q")));
assertTrue(isVersion29OrLater(parseGerritVersion("2.9.0")));
assertTrue(isVersion29OrLater(parseGerritVersion("2.9.0-q")));
assertTrue(isVersion29OrLater(parseGerritVersion("2.9.0-rc2")));
assertTrue(isVersion29OrLater(parseGerritVersion("2.9.1")));
assertTrue(isVersion29OrLater(parseGerritVersion("2.9.1-q")));
assertTrue(isVersion29OrLater(parseGerritVersion("2.9.1-rc2")));
}
@Test
public void testIsVersion24x() throws Exception {
assertFalse(isVersion24x(parseGerritVersion("2.3.9")));
assertFalse(isVersion24x(parseGerritVersion("2.3.9-q")));
assertTrue(isVersion24x(parseGerritVersion("2.4")));
assertTrue(isVersion24x(parseGerritVersion("2.4-q")));
assertTrue(isVersion24x(parseGerritVersion("2.4.0")));
assertTrue(isVersion24x(parseGerritVersion("2.4.0-q")));
assertTrue(isVersion24x(parseGerritVersion("2.4.1")));
assertTrue(isVersion24x(parseGerritVersion("2.4.1-q")));
assertFalse(isVersion24x(parseGerritVersion("2.5")));
assertFalse(isVersion24x(parseGerritVersion("2.5-q")));
assertFalse(isVersion24x(parseGerritVersion("2.5.0")));
assertFalse(isVersion24x(parseGerritVersion("2.5.0-q")));
}
}