Back to index

lightning-sunbird  0.9+nobinonly
TestVersionComparator.java
Go to the documentation of this file.
00001 /* ***** BEGIN LICENSE BLOCK *****
00002  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
00003  *
00004  * The contents of this file are subject to the Mozilla Public License Version
00005  * 1.1 (the "License"); you may not use this file except in compliance with
00006  * the License. You may obtain a copy of the License at
00007  * http://www.mozilla.org/MPL/
00008  *
00009  * Software distributed under the License is distributed on an "AS IS" basis,
00010  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00011  * for the specific language governing rights and limitations under the
00012  * License.
00013  *
00014  * The Original Code is Java XPCOM Bindings.
00015  *
00016  * The Initial Developer of the Original Code is
00017  * IBM Corporation.
00018  * Portions created by the Initial Developer are Copyright (C) 2005
00019  * IBM Corporation. All Rights Reserved.
00020  *
00021  * Contributor(s):
00022  *   Javier Pedemonte (jhpedemonte@gmail.com)
00023  *
00024  * Alternatively, the contents of this file may be used under the terms of
00025  * either the GNU General Public License Version 2 or later (the "GPL"), or
00026  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
00027  * in which case the provisions of the GPL or the LGPL are applicable instead
00028  * of those above. If you wish to allow use of your version of this file only
00029  * under the terms of either the GPL or the LGPL, and not to allow others to
00030  * use your version of this file under the terms of the MPL, indicate your
00031  * decision by deleting the provisions above and replace them with the notice
00032  * and other provisions required by the GPL or the LGPL. If you do not delete
00033  * the provisions above, a recipient may use your version of this file under
00034  * the terms of any one of the MPL, the GPL or the LGPL.
00035  *
00036  * ***** END LICENSE BLOCK ***** */
00037 
00038 import org.mozilla.xpcom.VersionComparator;
00039 
00040 public class TestVersionComparator {
00041 
00042   public static void main(String[] args) {
00043     String[] comparisons = {
00044         "0.9",
00045         "0.9.1",
00046         "1.0pre1",
00047         "1.0pre2",
00048         "1.0",
00049         "1.1pre",
00050         "1.1pre1a",
00051         "1.1pre1",
00052         "1.1pre10a",
00053         "1.1pre10",
00054         "1.1",
00055         "1.1.0.1",
00056         "1.1.1",
00057         "1.1.*",
00058         "1.*",
00059         "2.0",
00060         "2.1",
00061         "3.0.-1",
00062         "3.0"
00063     };
00064 
00065     String[] equality = {
00066         "1.1pre",
00067         "1.1pre0",
00068         "1.0+"
00069     };
00070 
00071     VersionComparator comp = new VersionComparator();
00072 
00073     // test comparisons in both directions
00074     for (int i = 0; i < comparisons.length - 1; i++) {
00075       int res = comp.compare(comparisons[i], comparisons[i + 1]);
00076       _assert(res < 0);
00077 
00078       res = comp.compare(comparisons[i + 1], comparisons[i]);
00079       _assert(res > 0);
00080     }
00081 
00082     // test equality in both directions
00083     for (int i = 0; i < equality.length - 1; i++) {
00084       int res = comp.compare(equality[i], equality[i + 1]);
00085       _assert(res == 0);
00086 
00087       res = comp.compare(equality[i + 1], equality[i]);
00088       _assert(res == 0);
00089     }
00090 
00091     System.out.println("-- passed");
00092   }
00093 
00094   private static void _assert(boolean expression) {
00095     if (!expression) {
00096       Throwable t = new Throwable();
00097       t.printStackTrace();
00098       System.exit(1);
00099     }
00100   }
00101 }
00102