/* * JBoss, Home of Professional Open Source * Copyright 2010-2016, Red Hat, Inc. and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.richfaces.tests.qa.plugin.utils; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.Collections; import java.util.EnumSet; import org.junit.Before; import org.junit.Test; import org.richfaces.tests.qa.plugin.utils.Version.Format; import com.google.common.collect.Lists; /** * * @author <a href="mailto:jstefek@redhat.com">Jiri Stefek</a> */ public class VersionTest { private Version v; @Before public void cleanup() { v = null; } @Test public void testCompareVersion() { Version one = new Version("1"); Version oneOne = new Version("1.1"); Version oneOneOne = new Version("1.1.1"); Version oneOneOneString = new Version("1.1.1-SPEC"); Version twoOne = new Version("2.1"); Version twoOneOne = new Version("2.1.1"); Version twoTwoOne = new Version("2.2.1"); ArrayList<Version> versions = Lists.newArrayList(oneOne, one); Collections.sort(versions); assertEquals(versions.get(0), one); versions.add(twoOne); Collections.sort(versions); assertEquals(versions.get(0), one); assertEquals(versions.get(1), oneOne); assertEquals(versions.get(2), twoOne); versions.add(oneOneOne); Collections.sort(versions); assertEquals(versions.get(0), one); assertEquals(versions.get(1), oneOne); assertEquals(versions.get(2), oneOneOne); assertEquals(versions.get(3), twoOne); versions.add(twoTwoOne); Collections.sort(versions); assertEquals(versions.get(0), one); assertEquals(versions.get(1), oneOne); assertEquals(versions.get(2), oneOneOne); assertEquals(versions.get(3), twoOne); assertEquals(versions.get(4), twoTwoOne); versions.add(twoOneOne); Collections.sort(versions); assertEquals(versions.get(0), one); assertEquals(versions.get(1), oneOne); assertEquals(versions.get(2), oneOneOne); assertEquals(versions.get(3), twoOne); assertEquals(versions.get(4), twoOneOne); assertEquals(versions.get(5), twoTwoOne); versions.add(oneOneOneString); Collections.sort(versions); assertEquals(versions.get(0), one); assertEquals(versions.get(1), oneOne); assertEquals(versions.get(2), oneOneOne); assertEquals(versions.get(3), oneOneOneString); assertEquals(versions.get(4), twoOne); assertEquals(versions.get(5), twoOneOne); assertEquals(versions.get(6), twoTwoOne); } @Test public void testFormat() { String versionSttring = "3.2.1abc"; v = Version.parseVersion(versionSttring); assertEquals(versionSttring, v.getFullFormat()); assertEquals("3.2", v.getMajorMinorFormat()); assertEquals("3.2.1", v.getMajorMinorMicroFormat()); assertEquals("3.2.1abc", v.getMajorMinorMicroSpecifierFormat()); assertEquals("abc", v.getFormat(EnumSet.of(Format.specifier))); assertEquals("", v.getFormat(EnumSet.of(Format.prefix))); versionSttring = "prefix-3.2.1abc"; v = Version.parseVersion(versionSttring); assertEquals("prefix-", v.getPrefix()); assertEquals("3.2", v.getMajorMinorFormat()); assertEquals("3.2.1", v.getMajorMinorMicroFormat()); assertEquals(versionSttring, v.getFullFormat()); assertEquals("3.2.1abc", v.getMajorMinorMicroSpecifierFormat()); assertEquals("abc", v.getFormat(EnumSet.of(Format.specifier))); assertEquals("prefix-", v.getFormat(EnumSet.of(Format.prefix))); } @Test public void testParseEAPVersion() { v = Version.parseVersion("jboss-eap-6.3.1"); assertEquals(6, v.getMajor()); assertEquals(3, v.getMinor()); assertEquals(1, v.getMicro()); assertEquals("jboss-eap-", v.getPrefix()); v = Version.parseVersion("jboss-eap-6.3.1-patched"); assertEquals(6, v.getMajor()); assertEquals(3, v.getMinor()); assertEquals(1, v.getMicro()); assertEquals("-patched", v.getSpecifier()); assertEquals("jboss-eap-", v.getPrefix()); v = Version.parseVersion("6.3.1-patched"); assertEquals(6, v.getMajor()); assertEquals(3, v.getMinor()); assertEquals(1, v.getMicro()); assertEquals("-patched", v.getSpecifier()); v = Version.parseVersion("6.3.1-DR1"); assertEquals(6, v.getMajor()); assertEquals(3, v.getMinor()); assertEquals(1, v.getMicro()); assertEquals("-DR1", v.getSpecifier()); v = Version.parseVersion("6.3.1.DR2"); assertEquals(6, v.getMajor()); assertEquals(3, v.getMinor()); assertEquals(1, v.getMicro()); assertEquals(".DR2", v.getSpecifier()); } @Test public void testParseFirefoxVersion() { v = Version.parseVersion("firefox-35"); assertEquals(35, v.getMajor()); assertEquals(0, v.getMinor()); assertEquals(0, v.getMicro()); assertEquals("", v.getSpecifier()); assertEquals("firefox-", v.getPrefix()); v = Version.parseVersion("firefox-35.1esr"); assertEquals(35, v.getMajor()); assertEquals(1, v.getMinor()); assertEquals(0, v.getMicro()); assertEquals("esr", v.getSpecifier()); assertEquals("firefox-", v.getPrefix()); v = Version.parseVersion("firefox-35.1.2esr"); assertEquals(35, v.getMajor()); assertEquals(1, v.getMinor()); assertEquals(2, v.getMicro()); assertEquals("esr", v.getSpecifier()); assertEquals("firefox-", v.getPrefix()); v = Version.parseVersion("firefox-35.12esr.old"); assertEquals(35, v.getMajor()); assertEquals(12, v.getMinor()); assertEquals(0, v.getMicro()); assertEquals("esr.old", v.getSpecifier()); assertEquals("firefox-", v.getPrefix()); v = Version.parseVersion("firefox-24.2esr.old.2"); assertEquals(24, v.getMajor()); assertEquals(2, v.getMinor()); assertEquals(0, v.getMicro()); assertEquals("esr.old.2", v.getSpecifier()); assertEquals("firefox-", v.getPrefix()); v = Version.parseVersion("firefox-24.2.1.1.esr"); assertEquals(24, v.getMajor()); assertEquals(2, v.getMinor()); assertEquals(1, v.getMicro()); assertEquals(".1.esr", v.getSpecifier()); assertEquals("firefox-", v.getPrefix()); v = Version.parseVersion("firefox-24esr"); assertEquals(24, v.getMajor()); assertEquals(0, v.getMinor()); assertEquals(0, v.getMicro()); assertEquals("esr", v.getSpecifier()); assertEquals("firefox-", v.getPrefix()); v = Version.parseVersion("firefox-24esr.1"); assertEquals(24, v.getMajor()); assertEquals(0, v.getMinor()); assertEquals(0, v.getMicro()); assertEquals("esr.1", v.getSpecifier()); assertEquals("firefox-", v.getPrefix()); } @Test public void testParseVersion() { v = new Version("35"); assertEquals(35, v.getMajor()); assertEquals(0, v.getMinor()); assertEquals(0, v.getMicro()); assertEquals("", v.getSpecifier()); v = new Version("35.1esr"); assertEquals(35, v.getMajor()); assertEquals(1, v.getMinor()); assertEquals(0, v.getMicro()); assertEquals("esr", v.getSpecifier()); v = new Version("35.1.2esr"); assertEquals(35, v.getMajor()); assertEquals(1, v.getMinor()); assertEquals(2, v.getMicro()); assertEquals("esr", v.getSpecifier()); v = new Version("35.12esr.old"); assertEquals(35, v.getMajor()); assertEquals(12, v.getMinor()); assertEquals(0, v.getMicro()); assertEquals("esr.old", v.getSpecifier()); v = new Version("24.2esr.old.2"); assertEquals(24, v.getMajor()); assertEquals(2, v.getMinor()); assertEquals(0, v.getMicro()); assertEquals("esr.old.2", v.getSpecifier()); v = new Version("24.2.1.1.esr"); assertEquals(24, v.getMajor()); assertEquals(2, v.getMinor()); assertEquals(1, v.getMicro()); assertEquals(".1.esr", v.getSpecifier()); v = new Version("24esr"); assertEquals(24, v.getMajor()); assertEquals(0, v.getMinor()); assertEquals(0, v.getMicro()); assertEquals("esr", v.getSpecifier()); v = new Version("24esr.1"); assertEquals(24, v.getMajor()); assertEquals(0, v.getMinor()); assertEquals(0, v.getMicro()); assertEquals("esr.1", v.getSpecifier()); v = new Version("6.2.4-patched"); assertEquals(6, v.getMajor()); assertEquals(2, v.getMinor()); assertEquals(4, v.getMicro()); assertEquals("-patched", v.getSpecifier()); } }