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