18da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal/*
28da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * Copyright 2010 Google Inc.
38da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal *
48da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * Licensed under the Apache License, Version 2.0 (the "License");
58da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * you may not use this file except in compliance with the License.
68da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * You may obtain a copy of the License at
78da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal *
88da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * http://www.apache.org/licenses/LICENSE-2.0
98da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal *
108da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * Unless required by applicable law or agreed to in writing, software
118da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * distributed under the License is distributed on an "AS IS" BASIS,
128da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
138da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * See the License for the specific language governing permissions and
148da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * limitations under the License.
158da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal */
168da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalpackage com.google.android.testing.mocking;
178da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal
188da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport junit.framework.TestCase;
198da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal
208da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport java.util.Arrays;
218da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport java.util.List;
228da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal
238da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal/**
248da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * @author swoodward@google.com (Stephen Woodward)
258da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal */
268da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalpublic class SdkVersionTest extends TestCase {
278da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal
288da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal  public void testGetAllVersions() {
298da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    List<SdkVersion> versions = Arrays.asList(SdkVersion.getAllVersions());
308da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    List<SdkVersion> values = Arrays.asList(SdkVersion.values());
3140bb73886c61d4b2e96bab98b50c1cbfcb54d9a3Luis Sigal    assertEquals(6, versions.size());
328da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertTrue(values.containsAll(versions));
338da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertFalse(versions.contains(SdkVersion.UNKNOWN));
348da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal  }
358da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal
368da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal  public void testGetVersionName() {
378da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals("v15", SdkVersion.CUPCAKE.getVersionName());
388da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals("v16", SdkVersion.DONUT.getVersionName());
398da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals("v201", SdkVersion.ECLAIR_0_1.getVersionName());
408da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals("v21", SdkVersion.ECLAIR_MR1.getVersionName());
418da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals("v22", SdkVersion.FROYO.getVersionName());
4240bb73886c61d4b2e96bab98b50c1cbfcb54d9a3Luis Sigal    assertEquals("v23", SdkVersion.GINGERBREAD.getVersionName());
438da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals("", SdkVersion.UNKNOWN.getVersionName());
448da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals("Unknown new SDK has been added, update this test",
4540bb73886c61d4b2e96bab98b50c1cbfcb54d9a3Luis Sigal        7, SdkVersion.values().length);
468da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal  }
478da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal
488da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal  public void testGetPackagePrefix() {
498da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals("v15.", SdkVersion.CUPCAKE.getPackagePrefix());
508da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals("v16.", SdkVersion.DONUT.getPackagePrefix());
518da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals("v201.", SdkVersion.ECLAIR_0_1.getPackagePrefix());
528da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals("v21.", SdkVersion.ECLAIR_MR1.getPackagePrefix());
538da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals("v22.", SdkVersion.FROYO.getPackagePrefix());
5440bb73886c61d4b2e96bab98b50c1cbfcb54d9a3Luis Sigal    assertEquals("v23.", SdkVersion.GINGERBREAD.getPackagePrefix());
558da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals("", SdkVersion.UNKNOWN.getPackagePrefix());
568da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals("Unknown new SDK has been added, update this test",
5740bb73886c61d4b2e96bab98b50c1cbfcb54d9a3Luis Sigal        7, SdkVersion.values().length);
588da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal  }
598da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal
608da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal  public void testGetCurrentVersion() {
618da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    // Always UNKNOWN on the desktop
628da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals(SdkVersion.UNKNOWN, SdkVersion.getCurrentVersion());
638da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal  }
648da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal
658da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal  public void testGetVersionFor() {
668da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals(SdkVersion.CUPCAKE, SdkVersion.getVersionFor(3));
678da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals(SdkVersion.DONUT, SdkVersion.getVersionFor(4));
688da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals(SdkVersion.ECLAIR_0_1, SdkVersion.getVersionFor(6));
698da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals(SdkVersion.ECLAIR_MR1, SdkVersion.getVersionFor(7));
708da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals(SdkVersion.FROYO, SdkVersion.getVersionFor(8));
7140bb73886c61d4b2e96bab98b50c1cbfcb54d9a3Luis Sigal    assertEquals(SdkVersion.GINGERBREAD, SdkVersion.getVersionFor(9));
728da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    assertEquals(SdkVersion.UNKNOWN, SdkVersion.getVersionFor(-1));
7340bb73886c61d4b2e96bab98b50c1cbfcb54d9a3Luis Sigal    // All likely future version numbers...  Modify this when a new version is added
7440bb73886c61d4b2e96bab98b50c1cbfcb54d9a3Luis Sigal    for (int i = 10; i < 50; ++i) {
758da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal      assertEquals("Unknown new SDK has been added, update this test",
768da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal          SdkVersion.UNKNOWN, SdkVersion.getVersionFor(i));
778da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal    }
788da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal  }
798da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal}
80