package org.jivesoftware.util; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertFalse; import org.jivesoftware.util.Version.ReleaseStatus; import org.junit.Test; public class VersionTest { @Test public void testVersionWithInitializingConstructor() { Version test = new Version(3, 2, 1, ReleaseStatus.Beta, 4); assertEquals(3, test.getMajor()); assertEquals(2, test.getMinor()); assertEquals(1, test.getMicro()); assertEquals(ReleaseStatus.Beta, test.getStatus()); assertEquals(4, test.getStatusVersion()); assertEquals("3.2.1 Beta 4", test.getVersionString()); } @Test public void testVersionWithRegularStringConstructor() { Version test = new Version("1.2.3 Beta 3"); assertEquals(1, test.getMajor()); assertEquals(2, test.getMinor()); assertEquals(3, test.getMicro()); assertEquals(ReleaseStatus.Beta, test.getStatus()); assertEquals(3, test.getStatusVersion()); assertEquals("1.2.3 Beta 3", test.getVersionString()); } @Test public void testVersionWithNullStringConstructor() { Version test = new Version(null); assertEquals(0, test.getMajor()); assertEquals(0, test.getMinor()); assertEquals(0, test.getMicro()); assertEquals(ReleaseStatus.Release, test.getStatus()); assertEquals(-1, test.getStatusVersion()); assertEquals("0.0.0", test.getVersionString()); } @Test public void testVersionComparisons() { Version test123 = new Version("1.2.3"); Version test321 = new Version("3.2.1"); Version test322 = new Version("3.2.2"); Version test333 = new Version("3.3.3"); Version test300 = new Version("3.0.0"); Version test3100 = new Version("3.10.0"); Version test29999 = new Version("2.999.999"); Version test3100Alpha = new Version("3.10.0 Alpha"); Version test3100Beta = new Version("3.10.0 Beta"); Version test3100Beta1 = new Version("3.10.0 Beta 1"); Version test3100Beta2 = new Version("3.10.0 Beta 2"); assertEquals(-1, test123.compareTo(test321)); assertEquals(0, test123.compareTo(test123)); assertEquals(1, test321.compareTo(test123)); assertTrue(test322.isNewerThan(test321)); assertFalse(test322.isNewerThan(test333)); assertFalse(test300.isNewerThan(test321)); assertTrue(test3100.isNewerThan(test333)); assertTrue(test3100.isNewerThan(test29999)); assertTrue(test300.isNewerThan(test29999)); assertTrue(test3100Beta.isNewerThan(test3100Alpha)); assertTrue(test3100Beta2.isNewerThan(test3100Beta1)); } @Test public void testVersionEquals() { Version version1 = new Version(3, 11, 0, Version.ReleaseStatus.Alpha, -1); Version version2 = new Version(3, 11, 0, Version.ReleaseStatus.Alpha, -1); assertEquals(version1, version2); assertTrue((version1.compareTo(version2) == 0) == version1.equals(version2)); } }