package org.getcomposer.core.test; import org.junit.Test; import com.dubture.getcomposer.core.ComposerConstants; import com.dubture.getcomposer.core.RepositoryPackage; import com.dubture.getcomposer.core.collection.Versions; import com.dubture.getcomposer.core.entities.Version; import com.dubture.getcomposer.packages.PackageDownloader; import com.dubture.getcomposer.packages.PackagistDownloader; import junit.framework.TestCase; public class VersionTest extends TestCase { @Test public void testParser() { Version v = new Version("1.2.3"); assertEquals("1", v.getMajor()); assertEquals("2", v.getMinor()); assertEquals("3", v.getFix()); v.setVersion(">1.2.3-rc1@beta"); assertEquals(">", v.getConstraint()); assertEquals("1", v.getSuffix()); assertEquals(ComposerConstants.BETA, v.getStabilityModifier()); assertEquals(ComposerConstants.RC, v.getStability()); v.setVersion("dev-master"); assertEquals("master", v.getMajor()); assertEquals(Version.BEGIN, v.getDevPosition()); v.setVersion("v2.0.17"); assertEquals("2", v.getMajor()); assertEquals("v", v.getPrefix()); } @Test public void testBuilder() { Version v = new Version(); v.setMajor("1"); v.setMinor("2"); v.setFix("4"); v.setBuild("5648"); v.setConstraint(">"); v.setStabilityModifier("beta"); v.setStability(ComposerConstants.ALPHA); v.setSuffix("2"); String version = v.toString(); assertEquals(">1.2.4.5648-alpha2@beta", version); Version t = new Version(version); assertEquals(">", t.getConstraint()); assertEquals("1", t.getMajor()); assertEquals("2", t.getMinor()); assertEquals("4", t.getFix()); assertEquals("5648", t.getBuild()); assertEquals("2", t.getSuffix()); assertEquals(ComposerConstants.ALPHA, t.getStability()); assertEquals(ComposerConstants.BETA, t.getStabilityModifier()); v = new Version(); v.setStability(ComposerConstants.DEV); v.setMajor("master"); v.setDevPosition(Version.BEGIN); assertEquals("dev-master", v.toString()); v = new Version(); v.setMajor("2"); v.setPrefix("v"); assertEquals("v2", v.toString()); } @Test public void testSymfony() { try { PackageDownloader downloader = new PackagistDownloader(); RepositoryPackage pkg = downloader.loadPackage("symfony/symfony"); Versions versions = pkg.getVersions(); assertNotNull(versions.getMajors()); assertTrue(Integer.parseInt(versions.getRecentMajor()) >= 2); assertTrue(Integer.parseInt(versions.getRecentMinor("2")) >= 2); assertNull(versions.getRecentMinor(null)); } catch (Exception e) { e.printStackTrace(); fail(); } } @Test public void testComparison() { Version v1 = new Version("2.0.10"); Version v2 = new Version("2.0.11"); assertEquals(-1, v1.compareTo(v2)); v2.setVersion("2.0.7"); assertEquals(1, v1.compareTo(v2)); v2.setVersion("2.0.10-beta2"); assertEquals(1, v1.compareTo(v2)); v1.setVersion("2.0.10-beta3"); assertEquals(1, v1.compareTo(v2)); v2.setVersion("2.0.x-dev"); assertEquals(-1, v1.compareTo(v2)); } }