package org.axway.grapes.server.core.version;
import org.junit.Test;
import static org.junit.Assert.*;
public class VersionTest {
@Test
public void isSnapshotVersion() throws NotHandledVersionException {
Version version1 = new Version("1.0.0-SNAPSHOT");
assertTrue(version1.isSnapshot());
Version version2 = new Version("1.0.0-1-SNAPSHOT");
assertTrue(version2.isSnapshot());
Version version3 = new Version("1");
assertFalse(version3.isSnapshot());
Version version4 = new Version("1.0");
assertFalse(version4.isSnapshot());
Version version5 = new Version("1.0.0");
assertFalse(version5.isSnapshot());
Version version6 = new Version("1.0.0-1");
assertFalse(version6.isSnapshot());
Version version7 = new Version("1.0.0-1-1");
assertFalse(version7.isSnapshot());
}
@Test
public void isReleaseVersion() throws NotHandledVersionException {
Version version1 = new Version("1.0.0-SNAPSHOT");
assertFalse(version1.isRelease());
Version version2 = new Version("1.0.0-1-SNAPSHOT");
assertFalse(version2.isRelease());
Version version3 = new Version("1");
assertTrue(version3.isRelease());
Version version4 = new Version("1.0");
assertTrue(version4.isRelease());
Version version5 = new Version("1.0.0");
assertTrue(version5.isRelease());
Version version6 = new Version("1.0.0-1");
assertTrue(version6.isRelease());
Version version7 = new Version("1.0.0-1-1");
assertTrue(version7.isRelease());
}
@Test
public void isBranchVersion() throws NotHandledVersionException {
Version version1 = new Version("1.0.0-SNAPSHOT");
assertFalse(version1.isBranch());
Version version2 = new Version("1.0.0-1-SNAPSHOT");
assertTrue(version2.isBranch());
Version version3 = new Version("1");
assertFalse(version3.isBranch());
Version version4 = new Version("1.0");
assertFalse(version4.isBranch());
Version version5 = new Version("1.0.0");
assertFalse(version5.isBranch());
Version version6 = new Version("1.0.0-1");
assertFalse(version6.isBranch());
Version version7 = new Version("1.0.0-1-1");
assertTrue(version7.isBranch());
}
@Test
public void cannotCompareVersions() throws NotHandledVersionException {
Version version1 = new Version("1.0.0");
Version version3 = new Version("1.0.0-1-1");
IncomparableException exception = null;
try {
version1.compare(version3);
} catch (IncomparableException e) {
exception = e;
}
assertNotNull(exception);
}
@Test
public void compareSimpleVersions() throws IncomparableException, NotHandledVersionException{
Version version1 = new Version("1.0.0-SNAPSHOT");
Version version1bis = new Version("1.0.0-SNAPSHOT");
Version version2 = new Version("1.0.22-SNAPSHOT");
Version version3 = new Version("1.12.0-SNAPSHOT");
Version version4 = new Version("2.0.0-SNAPSHOT");
Version version5 = new Version("0.12.1-1");
Version version6 = new Version("1.0.0-1");
Version version7 = new Version("1.0.20-1");
Version version8 = new Version("1.5.2-1");
Version version9 = new Version("3.0.0-1");
Version version10 = new Version("1.0.0-2");
assertEquals(0, version1.compare(version1bis));
assertEquals(-1, version1.compare(version2));
assertEquals(-1, version1.compare(version3));
assertEquals(-1, version1.compare(version4));
assertEquals(1, version1.compare(version5));
assertEquals(1, version1.compare(version6));
assertEquals(-1, version1.compare(version7));
assertEquals(-1, version1.compare(version8));
assertEquals(-1, version1.compare(version9));
assertEquals(1, version2.compare(version1));
assertEquals(-1, version2.compare(version3));
assertEquals(-1, version2.compare(version4));
assertEquals(1, version2.compare(version5));
assertEquals(1, version2.compare(version6));
assertEquals(1, version2.compare(version7));
assertEquals(-1, version2.compare(version8));
assertEquals(-1, version2.compare(version9));
assertEquals(1, version3.compare(version1));
assertEquals(1, version3.compare(version2));
assertEquals(-1, version3.compare(version4));
assertEquals(1, version3.compare(version5));
assertEquals(1, version3.compare(version6));
assertEquals(1, version3.compare(version7));
assertEquals(1, version3.compare(version8));
assertEquals(-1, version3.compare(version9));
assertEquals(1, version4.compare(version1));
assertEquals(1, version4.compare(version2));
assertEquals(1, version4.compare(version3));
assertEquals(1, version4.compare(version5));
assertEquals(1, version4.compare(version6));
assertEquals(1, version4.compare(version7));
assertEquals(1, version4.compare(version8));
assertEquals(-1, version4.compare(version9));
assertEquals(-1, version5.compare(version1));
assertEquals(-1, version5.compare(version2));
assertEquals(-1, version5.compare(version3));
assertEquals(-1, version5.compare(version4));
assertEquals(-1, version5.compare(version6));
assertEquals(-1, version5.compare(version7));
assertEquals(-1, version5.compare(version8));
assertEquals(-1, version5.compare(version9));
assertEquals(-1, version6.compare(version1));
assertEquals(-1, version6.compare(version10));
assertEquals(1, version10.compare(version6));
}
@Test
public void compareBranchVersions() throws IncomparableException, NotHandledVersionException{
Version version1 = new Version("1.0.0-1-SNAPSHOT");
Version version1bis = new Version("1.0.0-1-SNAPSHOT");
Version version2 = new Version("1.0.0-1-4");
Version version3 = new Version("1.0.0-2-SNAPSHOT");
Version version4 = new Version("1.0.0-3-1");
assertEquals(0, version1.compare(version1bis));
assertEquals(1, version1.compare(version2));
assertEquals(-1, version1.compare(version3));
assertEquals(-1, version1.compare(version4));
assertEquals(-1, version2.compare(version1));
assertEquals(-1, version2.compare(version3));
assertEquals(-1, version2.compare(version4));
assertEquals(1, version3.compare(version1));
assertEquals(1, version3.compare(version2));
assertEquals(-1, version3.compare(version4));
assertEquals(1, version4.compare(version1));
assertEquals(1, version4.compare(version2));
assertEquals(1, version4.compare(version3));
}
@Test
public void versionsNotHandled(){
NotHandledVersionException exception = null;
try {
new Version("1.0.0-0-0-0");
} catch (NotHandledVersionException e) {
exception = e;
}
assertNotNull(exception);
exception = null;
try {
new Version("1.bla.0-1");
} catch (NotHandledVersionException e) {
exception = e;
}
assertNotNull(exception);
exception = null;
try {
new Version("1.0.0-bla");
} catch (NotHandledVersionException e) {
exception = e;
}
assertNotNull(exception);
exception = null;
try {
new Version("1.0.0-SNAPSHOT-bla");
} catch (NotHandledVersionException e) {
exception = e;
}
assertNotNull(exception);
exception = null;
try {
new Version("1.0.0-1-bla");
} catch (NotHandledVersionException e) {
exception = e;
}
assertNotNull(exception);
}
@Test
public void compareExoticVersions() throws NotHandledVersionException, IncomparableException{
Version version1 = new Version("3.8.1");
Version version2 = new Version("4");
Version version3 = new Version("4.11");
assertEquals(-1, version1.compare(version2));
assertEquals(1, version2.compare(version1));
assertEquals(-1, version2.compare(version3));
}
}