/** * Copyright 2012 multibit.org * * Licensed under the MIT license (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://opensource.org/licenses/mit-license.php * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.multibit.utils; import junit.framework.TestCase; import org.junit.Test; public class VersionComparatorTest extends TestCase { @Test public void testRegular() throws Exception { VersionComparator comparator = new VersionComparator(); assertTrue(comparator.compare("0.0.1", "0.0.1") == 0); assertTrue(comparator.compare("0.0.2", "0.0.1") == 1); assertTrue(comparator.compare("0.0.1", "0.0.2") == -1); assertTrue(comparator.compare("0.1", "0.1") == 0); assertTrue(comparator.compare("0.2", "0.1") == 1); assertTrue(comparator.compare("0.1", "0.2") == -1); assertTrue(comparator.compare("1.0", "1.0") == 0); assertTrue(comparator.compare("2.0", "1.0") == 1); assertTrue(comparator.compare("1.0", "2.0") == -1); assertTrue(comparator.compare("1.4", "1.4") == 0); assertTrue(comparator.compare("2.4", "2.3") == 1); assertTrue(comparator.compare("2.3", "2.4") == -1); assertTrue(comparator.compare("1.4.7", "1.4.7") == 0); assertTrue(comparator.compare("1.4.8", "1.4.7") == 1); assertTrue(comparator.compare("1.4.7", "1.4.8") == -1); } @Test public void testAlpha() throws Exception { VersionComparator comparator = new VersionComparator(); assertTrue(comparator.compare("0.0.1alpha", "0.0.1alpha") == 0); assertTrue(comparator.compare("0.0.1", "0.0.1alpha") == 1); assertTrue(comparator.compare("0.0.1alpha", "0.0.1") == -1); assertTrue(comparator.compare("0.0.1alpha2", "0.0.1alpha2") == 0); assertTrue(comparator.compare("0.0.1alpha2", "0.0.1alpha1") == 1); assertTrue(comparator.compare("0.0.1alpha1", "0.0.1alpha2") == -1); assertTrue(comparator.compare("0.1alpha", "0.1alpha") == 0); assertTrue(comparator.compare("0.1", "0.1alpha") == 1); assertTrue(comparator.compare("0.2", "0.1alpha") == 1); assertTrue(comparator.compare("0.1alpha", "0.1") == -1); assertTrue(comparator.compare("0.4.6", "0.5.0alpha") == -1); } @Test public void testBeta() throws Exception { VersionComparator comparator = new VersionComparator(); assertTrue(comparator.compare("0.0.1beta", "0.0.1beta") == 0); assertTrue(comparator.compare("0.0.1", "0.0.1beta") == 1); assertTrue(comparator.compare("0.0.1alpha", "0.0.1") == -1); assertTrue(comparator.compare("0.0.1beta2", "0.0.1beta2") == 0); assertTrue(comparator.compare("0.0.1beta2", "0.0.1beta1") == 1); assertTrue(comparator.compare("0.0.1beta1", "0.0.1beta2") == -1); assertTrue(comparator.compare("0.0.1alpha1", "0.0.1beta1") == -1); assertTrue(comparator.compare("0.0.1alpha2", "0.0.1beta1") == -1); } @Test public void testReleaseCandidate() throws Exception { VersionComparator comparator = new VersionComparator(); assertTrue(comparator.compare("0.0.1rc", "0.0.1rc") == 0); assertTrue(comparator.compare("0.0.1", "0.0.1rc") == 1); assertTrue(comparator.compare("0.0.1rc", "0.0.1") == -1); assertTrue(comparator.compare("0.0.1rc2", "0.0.1rc2") == 0); assertTrue(comparator.compare("0.0.1rc2", "0.0.1rc1") == 1); assertTrue(comparator.compare("0.0.1rc1", "0.0.1rc2") == -1); assertTrue(comparator.compare("0.0.1rc1", "0.0.1beta1") == 1); assertTrue(comparator.compare("0.0.1rc1", "0.0.1beta2") == 1); assertTrue(comparator.compare("0.0.1rc2", "0.0.1alpha1") == 1); assertTrue(comparator.compare("0.0.1rc2", "0.0.1alpha2") == 1); } @Test public void testSnapshot() throws Exception { VersionComparator comparator = new VersionComparator(); assertTrue(comparator.compare("0.4.23", "0.4.24-SNAPSHOT") == -1); assertTrue(comparator.compare("0.4.24-SNAPSHOT", "0.4.23") == 1); assertTrue(comparator.compare("0.4.24-SNAPSHOT", "0.4.24-SNAPSHOT") == 0); } }