package test;
import aQute.bnd.version.MavenVersion;
import aQute.bnd.version.MavenVersionRange;
import aQute.bnd.version.Version;
import junit.framework.TestCase;
public class MavenVersionTest extends TestCase {
public void testRange() {
MavenVersionRange mvr = new MavenVersionRange("[1.0.0,2.0.0)");
assertEquals("[1.0.0,2.0.0)", mvr.toString());
assertFalse(mvr.includes(MavenVersion.parseMavenString("0")));
assertTrue(mvr.includes(MavenVersion.parseMavenString("1")));
assertFalse(mvr.includes(MavenVersion.parseMavenString("2")));
}
public void testRangeWithOr() {
MavenVersionRange mvr = new MavenVersionRange("[1.0.0 , 2.0.0) , [ 3.0.0, 4.0.0)");
assertEquals("[1.0.0,2.0.0),[3.0.0,4.0.0)", mvr.toString());
assertFalse(mvr.includes(MavenVersion.parseMavenString("0")));
assertTrue(mvr.includes(MavenVersion.parseMavenString("1")));
assertFalse(mvr.includes(MavenVersion.parseMavenString("2")));
assertTrue(mvr.includes(MavenVersion.parseMavenString("3")));
assertFalse(mvr.includes(MavenVersion.parseMavenString("4")));
}
public void testRangeWithLowExcludeAndHighInclude() {
MavenVersionRange mvr = new MavenVersionRange("(1.0.0 , 2.0.0] , ( 3.0.0, 4.0.0]");
assertEquals("(1.0.0,2.0.0],(3.0.0,4.0.0]", mvr.toString());
assertFalse(mvr.includes(MavenVersion.parseMavenString("0")));
assertFalse(mvr.includes(MavenVersion.parseMavenString("1")));
assertTrue(mvr.includes(MavenVersion.parseMavenString("2")));
assertFalse(mvr.includes(MavenVersion.parseMavenString("3")));
assertTrue(mvr.includes(MavenVersion.parseMavenString("4")));
assertFalse(mvr.includes(MavenVersion.parseMavenString("4.0.0.1")));
}
public void testCleanupWithMajor() {
assertEquals("0.0.0.usedbypico", MavenVersion.cleanupVersion("usedbypico"));
assertEquals("0.0.0.usedbypico", MavenVersion.cleanupVersion("use^%$#@dbypico"));
assertEquals("0.0.0.usedbypico", MavenVersion.cleanupVersion("0.use^%$#@dbypico"));
}
public void testMajorMinorMicro() {
MavenVersion mv = MavenVersion.parseString("1.2.3");
assertEquals(new Version(1, 2, 3), mv.getOSGiVersion());
}
public void testMajorMinor() {
MavenVersion mv = MavenVersion.parseString("1.2");
assertEquals(new Version(1, 2), mv.getOSGiVersion());
}
public void testMajor() {
MavenVersion mv = MavenVersion.parseString("1");
assertEquals(new Version(1), mv.getOSGiVersion());
}
public void testSnapshot() {
MavenVersion mv = MavenVersion.parseString("1.2.3-SNAPSHOT");
assertEquals(new Version(1, 2, 3, "SNAPSHOT"), mv.getOSGiVersion());
assertTrue(mv.isSnapshot());
mv = MavenVersion.parseString("1.2-SNAPSHOT");
assertEquals(new Version(1, 2, 0, "SNAPSHOT"), mv.getOSGiVersion());
assertTrue(mv.isSnapshot());
mv = MavenVersion.parseString("1-SNAPSHOT");
assertEquals(new Version(1, 0, 0, "SNAPSHOT"), mv.getOSGiVersion());
assertTrue(mv.isSnapshot());
mv = MavenVersion.parseString("1.2.3.SNAPSHOT");
assertEquals(new Version(1, 2, 3, "SNAPSHOT"), mv.getOSGiVersion());
assertTrue(mv.isSnapshot());
mv = MavenVersion.parseString("1.2.3.BUILD-SNAPSHOT");
assertEquals(new Version(1, 2, 3, "BUILD-SNAPSHOT"), mv.getOSGiVersion());
assertTrue(mv.isSnapshot());
mv = MavenVersion.parseString("1.2-BUILD-SNAPSHOT");
assertEquals(new Version(1, 2, 0, "BUILD-SNAPSHOT"), mv.getOSGiVersion());
assertTrue(mv.isSnapshot());
}
public void testNumericQualifier() {
MavenVersion mv = MavenVersion.parseString("1.2.3-01");
assertEquals(new Version(1, 2, 3, "01"), mv.getOSGiVersion());
mv = MavenVersion.parseString("1.2.3.01");
assertEquals(new Version(1, 2, 3, "01"), mv.getOSGiVersion());
}
public void testQualifierWithDashSeparator() {
MavenVersion mv = MavenVersion.parseString("1.2.3-beta-1");
assertEquals(new Version(1, 2, 3, "beta-1"), mv.getOSGiVersion());
assertFalse(mv.isSnapshot());
}
public void testQualifierWithoutSeparator() {
MavenVersion mv = MavenVersion.parseString("1.2.3rc1");
assertEquals(new Version(1, 2, 3, "rc1"), mv.getOSGiVersion());
assertFalse(mv.isSnapshot());
mv = MavenVersion.parseString("1.2rc1");
assertEquals(new Version(1, 2, 0, "rc1"), mv.getOSGiVersion());
assertFalse(mv.isSnapshot());
mv = MavenVersion.parseString("1rc1");
assertEquals(new Version(1, 0, 0, "rc1"), mv.getOSGiVersion());
assertFalse(mv.isSnapshot());
}
public void testQualifierWithDotSeparator() {
MavenVersion mv = MavenVersion.parseString("1.2.3.beta-1");
assertEquals(new Version(1, 2, 3, "beta-1"), mv.getOSGiVersion());
assertFalse(mv.isSnapshot());
mv = MavenVersion.parseString("1.2.beta-1");
assertEquals(new Version(1, 2, 0, "beta-1"), mv.getOSGiVersion());
assertFalse(mv.isSnapshot());
mv = MavenVersion.parseString("1.beta-1");
assertEquals(new Version(1, 0, 0, "beta-1"), mv.getOSGiVersion());
assertFalse(mv.isSnapshot());
}
public void testDotsInQualifier() {
MavenVersion mv = MavenVersion.parseString("1.2.3.4.5");
assertEquals(new Version(1, 2, 3, "4.5"), mv.getOSGiVersion());
assertFalse(mv.isSnapshot());
mv = MavenVersion.parseString("1.2.3-4.5");
assertEquals(new Version(1, 2, 3, "4.5"), mv.getOSGiVersion());
assertFalse(mv.isSnapshot());
mv = MavenVersion.parseString("1.2-4.5");
assertEquals(new Version(1, 2, 0, "4.5"), mv.getOSGiVersion());
assertFalse(mv.isSnapshot());
mv = MavenVersion.parseString("1-4.5");
assertEquals(new Version(1, 0, 0, "4.5"), mv.getOSGiVersion());
assertFalse(mv.isSnapshot());
}
public void testNull() {
MavenVersion mv = MavenVersion.parseString(null);
assertEquals(new Version(0, 0, 0), mv.getOSGiVersion());
assertFalse(mv.isSnapshot());
}
public void testEmptyString() {
MavenVersion mv = MavenVersion.parseString("");
assertEquals(new Version(0, 0, 0), mv.getOSGiVersion());
assertFalse(mv.isSnapshot());
mv = MavenVersion.parseString(" ");
assertEquals(new Version(0, 0, 0), mv.getOSGiVersion());
assertFalse(mv.isSnapshot());
}
public void testInvalidVersion() {
try {
MavenVersion mv = MavenVersion.parseString("Not a number");
fail();
} catch (IllegalArgumentException e) {
// expected
}
}
}