package fr.ens.biologie.genomique.eoulsan.core;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import com.google.common.collect.Lists;
import fr.ens.biologie.genomique.eoulsan.core.Version;
public class VersionTest {
@Test
public void testGetMajor() {
Version v = new Version();
assertEquals(0, v.getMajor());
assertEquals(0, v.getMinor());
assertEquals(0, v.getRevision());
assertEquals("", v.getType());
v.setMajor(2);
assertEquals(2, v.getMajor());
assertEquals(0, v.getMinor());
assertEquals(0, v.getRevision());
assertEquals("", v.getType());
}
@Test
public void testGetMinor() {
Version v = new Version();
assertEquals(0, v.getMajor());
assertEquals(0, v.getMinor());
assertEquals(0, v.getRevision());
assertEquals("", v.getType());
v.setMinor(2);
assertEquals(0, v.getMajor());
assertEquals(2, v.getMinor());
assertEquals(0, v.getRevision());
assertEquals("", v.getType());
}
@Test
public void testGetRevision() {
Version v = new Version();
assertEquals(0, v.getMajor());
assertEquals(0, v.getMinor());
assertEquals(0, v.getRevision());
assertEquals("", v.getType());
v.setRevision(3);
assertEquals(0, v.getMajor());
assertEquals(0, v.getMinor());
assertEquals(3, v.getRevision());
assertEquals("", v.getType());
}
@Test
public void testGetType() {
Version v = new Version();
assertEquals(0, v.getMajor());
assertEquals(0, v.getMinor());
assertEquals(0, v.getRevision());
assertEquals("", v.getType());
v.setType("-beta");
assertEquals(0, v.getMajor());
assertEquals(0, v.getMinor());
assertEquals(0, v.getRevision());
assertEquals("-beta", v.getType());
}
@Test
public void testToString() {
assertEquals("0.0", new Version().toString());
assertEquals("1.0", new Version(1, 0, 0).toString());
assertEquals("1.2", new Version(1, 2, 0).toString());
assertEquals("1.2.3", new Version(1, 2, 3).toString());
assertEquals("1.2-beta", new Version(1, 2, 0, "-beta").toString());
assertEquals("1.2.3-beta", new Version(1, 2, 3, "-beta").toString());
}
@Test
public void testSetVersionIntIntInt() {
Version v = new Version();
assertEquals(0, v.getMajor());
assertEquals(0, v.getMinor());
assertEquals(0, v.getRevision());
assertEquals("", v.getType());
v.setVersion(1, 2, 3);
assertEquals(1, v.getMajor());
assertEquals(2, v.getMinor());
assertEquals(3, v.getRevision());
assertEquals("", v.getType());
}
@Test
public void testSetVersionIntIntIntString() {
Version v = new Version();
assertEquals(0, v.getMajor());
assertEquals(0, v.getMinor());
assertEquals(0, v.getRevision());
assertEquals("", v.getType());
v.setVersion(1, 2, 3, "beta");
assertEquals(1, v.getMajor());
assertEquals(2, v.getMinor());
assertEquals(3, v.getRevision());
assertEquals("beta", v.getType());
}
@Test
public void testSetVersionString() {
Version v = new Version();
assertEquals(0, v.getMajor());
assertEquals(0, v.getMinor());
assertEquals(0, v.getRevision());
assertEquals("", v.getType());
v.setVersion("1.2.3beta");
assertEquals(1, v.getMajor());
assertEquals(2, v.getMinor());
assertEquals(3, v.getRevision());
assertEquals("beta", v.getType());
}
@Test
public void testCompareTo() {
Version v1 = new Version(0, 0, 0, "");
Version v2 = new Version(1, 0, 0, "");
Version v3 = new Version(2, 0, 0, "");
assertTrue(v2.compareTo(v1) > 0);
assertTrue(v2.compareTo(v2) == 0);
assertTrue(v2.compareTo(v3) < 0);
v1.setVersion(1, 0, 0, "");
v2.setVersion(1, 1, 0, "");
v3.setVersion(1, 2, 0, "");
assertTrue(v2.compareTo(v1) > 0);
assertTrue(v2.compareTo(v2) == 0);
assertTrue(v2.compareTo(v3) < 0);
v1.setVersion(1, 1, 0, "");
v2.setVersion(1, 1, 1, "");
v3.setVersion(1, 1, 2, "");
assertTrue(v2.compareTo(v1) > 0);
assertTrue(v2.compareTo(v2) == 0);
assertTrue(v2.compareTo(v3) < 0);
v1.setVersion(1, 1, 1, "alpha");
v2.setVersion(1, 1, 1, "beta");
v3.setVersion(1, 1, 1, "rc");
assertTrue(v2.compareTo(v1) > 0);
assertTrue(v2.compareTo(v2) == 0);
assertTrue(v2.compareTo(v3) < 0);
}
@Test
public void testLessThan() {
Version v1 = new Version(1, 0, 0, "");
Version v2 = new Version(2, 0, 0, "");
Version v1bis = new Version(1, 0, 0, "");
assertTrue(v1.lessThan(v2));
assertFalse(v2.lessThan(v1));
assertFalse(v1.lessThan(v1bis));
assertFalse(v1.lessThan(null));
}
@Test
public void testLessThanOrEqualTo() {
Version v1 = new Version(1, 0, 0, "");
Version v2 = new Version(2, 0, 0, "");
Version v1bis = new Version(1, 0, 0, "");
assertTrue(v1.lessThanOrEqualTo(v2));
assertFalse(v2.lessThanOrEqualTo(v1));
assertTrue(v1.lessThanOrEqualTo(v1bis));
assertFalse(v1.lessThanOrEqualTo(null));
}
@Test
public void testGreaterThan() {
Version v1 = new Version(1, 0, 0, "");
Version v2 = new Version(2, 0, 0, "");
Version v1bis = new Version(1, 0, 0, "");
assertTrue(v2.greaterThan(v1));
assertFalse(v1.greaterThan(v2));
assertFalse(v1.greaterThan(v1bis));
assertTrue(v1.greaterThan(null));
}
@Test
public void testGreaterThanOrEqualTo() {
Version v1 = new Version(1, 0, 0, "");
Version v2 = new Version(2, 0, 0, "");
Version v1bis = new Version(1, 0, 0, "");
assertTrue(v2.greaterThanOrEqualTo(v1));
assertFalse(v1.greaterThanOrEqualTo(v2));
assertTrue(v1.greaterThanOrEqualTo(v1bis));
assertTrue(v1.greaterThanOrEqualTo(null));
}
@Test
public void testGetMinimalVersion() {
assertEquals(new Version(0, 0, 0, ""),
Version.getMinimalVersion(Lists.newArrayList(new Version(1, 0, 0, ""),
new Version(0, 0, 0, ""), new Version(2, 0, 0, ""))));
}
@Test
public void testGetMaximalVersion() {
assertEquals(new Version(2, 0, 0, ""),
Version.getMaximalVersion(Lists.newArrayList(new Version(1, 0, 0, ""),
new Version(0, 0, 0, ""), new Version(2, 0, 0, ""))));
}
@Test
public void testEqualsObject() {
assertTrue(new Version().equals(new Version(0, 0, 0, "")));
assertTrue(new Version(0, 0, 0, "").equals(new Version(0, 0, 0, "")));
assertTrue(new Version(1, 0, 0, "").equals(new Version(1, 0, 0, "")));
assertTrue(new Version(0, 1, 0, "").equals(new Version(0, 1, 0, "")));
assertTrue(new Version(0, 0, 1, "").equals(new Version(0, 0, 1, "")));
assertTrue(
new Version(0, 0, 0, "beta").equals(new Version(0, 0, 0, "beta")));
assertTrue(
new Version(1, 2, 3, "beta").equals(new Version(1, 2, 3, "beta")));
assertFalse(new Version(1, 0, 0, "").equals(new Version(2, 0, 0, "")));
assertFalse(new Version(0, 1, 0, "").equals(new Version(0, 2, 0, "")));
assertFalse(new Version(0, 0, 1, "").equals(new Version(0, 0, 2, "")));
assertFalse(
new Version(0, 0, 0, "beta").equals(new Version(0, 0, 0, "alpha")));
assertFalse(
new Version(1, 2, 3, "beta").equals(new Version(3, 0, 1, "alpha")));
}
@Test
public void testVersionIntIntInt() {
Version v = new Version(3, 2, 1);
assertEquals(3, v.getMajor());
assertEquals(2, v.getMinor());
assertEquals(1, v.getRevision());
}
@Test
public void testVersionIntIntIntString() {
Version v = new Version(3, 2, 1, "beta");
assertEquals(3, v.getMajor());
assertEquals(2, v.getMinor());
assertEquals(1, v.getRevision());
assertEquals("beta", v.getType());
}
@Test
public void testVersionString() {
assertEquals(new Version(1, 2, 3, ""), new Version("1.2.3"));
assertEquals(new Version(1, 2, 0, ""), new Version("1.2"));
assertEquals(new Version(1, 0, 0, ""), new Version("1."));
assertEquals(new Version(1, 0, 0, ""), new Version("1."));
assertEquals(new Version(0, 0, 0, ""), new Version(""));
assertEquals(new Version(0, 0, 0, ""), new Version("."));
assertEquals(new Version(11, 22, 33, ""), new Version("11.22.33"));
assertEquals(new Version(11, 22, 0, ""), new Version("11.22"));
assertEquals(new Version(11, 22, 33, "-beta"),
new Version("11.22.33-beta"));
assertEquals(new Version(11, 22, 0, "-beta"), new Version("11.22-beta"));
assertEquals(new Version(11, 0, 0, "-beta"), new Version("11-beta"));
}
}