1d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll/* 2d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll * Copyright (C) 2012 The Android Open Source Project 3d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll * 4d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll * Licensed under the Apache License, Version 2.0 (the "License"); 5d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll * you may not use this file except in compliance with the License. 6d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll * You may obtain a copy of the License at 7d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll * 8d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll * http://www.apache.org/licenses/LICENSE-2.0 9d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll * 10d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll * Unless required by applicable law or agreed to in writing, software 11d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll * distributed under the License is distributed on an "AS IS" BASIS, 12d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll * See the License for the specific language governing permissions and 14d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll * limitations under the License. 15d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll */ 16d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll 17d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Mollpackage com.android.sdklib.internal.repository.packages; 18d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll 19d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Mollimport junit.framework.TestCase; 20d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll 21d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Mollpublic class MajorRevisionTest extends TestCase { 22d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll 23d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll public final void testMajorRevision() { 24d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll MajorRevision p = new MajorRevision(5); 25d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertEquals(5, p.getMajor()); 26d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertEquals(FullRevision.IMPLICIT_MINOR_REV, p.getMinor()); 27d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertEquals(FullRevision.IMPLICIT_MICRO_REV, p.getMicro()); 28d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertEquals(FullRevision.NOT_A_PREVIEW, p.getPreview()); 29d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertFalse (p.isPreview()); 30d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertEquals("5", p.toShortString()); 31d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertEquals(p, MajorRevision.parseRevision("5")); 32d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertEquals("5", p.toString()); 33d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll 34d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertEquals(new FullRevision(5, 0, 0, 0), p); 35d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll } 36d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll 37d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll public final void testParseError() { 38d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll String errorMsg = null; 39d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll try { 40d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll MajorRevision.parseRevision("5.0.0"); 41d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll fail("MajorRevision.parseRevision should thrown NumberFormatException"); 42d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll } catch (NumberFormatException e) { 43d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll errorMsg = e.getMessage(); 44d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll } 45d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertEquals("For input string: \"5.0.0\"", errorMsg); 46d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll } 47d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll 48d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll public final void testCompareTo() { 49d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll MajorRevision s4 = new MajorRevision(4); 50d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll MajorRevision i4 = new MajorRevision(4); 51d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll FullRevision g5 = new FullRevision (5, 1, 0, 6); 52d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll MajorRevision y5 = new MajorRevision(5); 53d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll FullRevision c5 = new FullRevision (5, 1, 0, 6); 54d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll FullRevision o5 = new FullRevision (5, 0, 0, 7); 55d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll FullRevision p5 = new FullRevision (5, 1, 0, 0); 56d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll 57d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertEquals(s4, i4); // 4.0.0-0 == 4.0.0-0 58d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertEquals(g5, c5); // 5.1.0-6 == 5.1.0-6 59d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll 60d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertFalse(y5.equals(p5)); // 5.0.0-0 != 5.1.0-0 61d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertFalse(g5.equals(p5)); // 5.1.0-6 != 5.1.0-0 62d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertTrue (s4.compareTo(i4) == 0); // 4.0.0-0 == 4.0.0-0 63d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertTrue (s4.compareTo(y5) < 0); // 4.0.0-0 < 5.0.0-0 64d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertTrue (y5.compareTo(y5) == 0); // 5.0.0-0 == 5.0.0-0 65d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertTrue (y5.compareTo(p5) < 0); // 5.0.0-0 < 5.1.0-0 66d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertTrue (o5.compareTo(y5) < 0); // 5.0.0-7 < 5.0.0-0 67d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertTrue (p5.compareTo(p5) == 0); // 5.1.0-0 == 5.1.0-0 68d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertTrue (c5.compareTo(p5) < 0); // 5.1.0-6 < 5.1.0-0 69d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertTrue (p5.compareTo(c5) > 0); // 5.1.0-0 > 5.1.0-6 70d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertTrue (p5.compareTo(o5) > 0); // 5.1.0-0 > 5.0.0-7 71d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertTrue (c5.compareTo(o5) > 0); // 5.1.0-6 > 5.0.0-7 72d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll assertTrue (o5.compareTo(o5) == 0); // 5.0.0-7 > 5.0.0-7 73d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll } 74d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll 75d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll} 76