187107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll/* 287107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll * Copyright (C) 2012 The Android Open Source Project 387107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll * 487107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll * Licensed under the Apache License, Version 2.0 (the "License"); 587107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll * you may not use this file except in compliance with the License. 687107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll * You may obtain a copy of the License at 787107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll * 887107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll * http://www.apache.org/licenses/LICENSE-2.0 987107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll * 1087107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll * Unless required by applicable law or agreed to in writing, software 1187107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll * distributed under the License is distributed on an "AS IS" BASIS, 1287107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1387107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll * See the License for the specific language governing permissions and 1487107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll * limitations under the License. 1587107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll */ 1687107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll 1787107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Mollpackage com.android.sdklib.internal.repository.packages; 1887107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll 19e4b7f106500886bf4a6eb0303dbc1cfb73229954Raphael Mollimport com.android.sdklib.repository.PkgProps; 20e4b7f106500886bf4a6eb0303dbc1cfb73229954Raphael Moll 2187107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Mollimport java.util.ArrayList; 2287107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Mollimport java.util.Arrays; 2387107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Mollimport java.util.Collections; 24e4b7f106500886bf4a6eb0303dbc1cfb73229954Raphael Mollimport java.util.Properties; 2587107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll 2687107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Mollimport junit.framework.TestCase; 2787107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll 2887107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Mollpublic class FullRevisionPackageTest extends TestCase { 2987107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll 30e4b7f106500886bf4a6eb0303dbc1cfb73229954Raphael Moll /** 31e4b7f106500886bf4a6eb0303dbc1cfb73229954Raphael Moll * Helper that creates the {@link Properties} from a {@link FullRevision} 32e4b7f106500886bf4a6eb0303dbc1cfb73229954Raphael Moll * as expected by {@link FullRevisionPackage}. 33e4b7f106500886bf4a6eb0303dbc1cfb73229954Raphael Moll */ 34e4b7f106500886bf4a6eb0303dbc1cfb73229954Raphael Moll public static Properties createProps(FullRevision revision) { 35e4b7f106500886bf4a6eb0303dbc1cfb73229954Raphael Moll Properties props = new Properties(); 36e4b7f106500886bf4a6eb0303dbc1cfb73229954Raphael Moll if (revision != null) { 37d113f3dc4354ac56cc51cf698610807b5bad914cRaphael Moll props.setProperty(PkgProps.PKG_REVISION, revision.toString()); 38e4b7f106500886bf4a6eb0303dbc1cfb73229954Raphael Moll } 39e4b7f106500886bf4a6eb0303dbc1cfb73229954Raphael Moll return props; 40e4b7f106500886bf4a6eb0303dbc1cfb73229954Raphael Moll } 41e4b7f106500886bf4a6eb0303dbc1cfb73229954Raphael Moll 4287107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll public void testCompareTo() throws Exception { 4387107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll // Test order of full revision packages. 4487107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll // 4587107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll // Note that Package.compareTo() is designed to return the desired 4687107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll // ordering for a list display and as such a final/release package 4787107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll // needs to be listed before its rc/preview package. 4887107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll // 4987107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll // This differs from the order used by FullRevision.compareTo(). 5087107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll 5187107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll ArrayList<Package> list = new ArrayList<Package>(); 5287107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll 5387107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll list.add(new MockToolPackage(null, new FullRevision(1, 0, 0, 0), 8)); 5487107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll list.add(new MockToolPackage(null, new FullRevision(1, 0, 0, 1), 8)); 5587107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll list.add(new MockToolPackage(null, new FullRevision(1, 0, 1, 0), 8)); 5687107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll list.add(new MockToolPackage(null, new FullRevision(1, 0, 1, 1), 8)); 5787107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll list.add(new MockToolPackage(null, new FullRevision(1, 1, 0, 0), 8)); 5887107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll list.add(new MockToolPackage(null, new FullRevision(1, 1, 0, 1), 8)); 5987107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll list.add(new MockToolPackage(null, new FullRevision(2, 1, 1, 0), 8)); 6087107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll list.add(new MockToolPackage(null, new FullRevision(2, 1, 1, 1), 8)); 6187107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll 6287107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll Collections.sort(list); 6387107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll 6487107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll assertEquals( 6587107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll "[Android SDK Tools, revision 1, " + 6687107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll "Android SDK Tools, revision 1 rc1, " + 6787107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll "Android SDK Tools, revision 1.0.1, " + 6887107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll "Android SDK Tools, revision 1.0.1 rc1, " + 6987107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll "Android SDK Tools, revision 1.1, " + 7087107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll "Android SDK Tools, revision 1.1 rc1, " + 7187107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll "Android SDK Tools, revision 2.1.1, " + 7287107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll "Android SDK Tools, revision 2.1.1 rc1]", 7387107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll Arrays.toString(list.toArray())); 7487107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll } 7587107c5cb1fb5fdafdaa94460fb6797af60fcde9Raphael Moll} 76