package com.mopub.common.util; import android.os.Build; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import static com.mopub.common.util.VersionCode.BASE; import static com.mopub.common.util.VersionCode.CUR_DEVELOPMENT; import static com.mopub.common.util.VersionCode.DONUT; import static com.mopub.common.util.VersionCode.FROYO; import static com.mopub.common.util.VersionCode.ICE_CREAM_SANDWICH; import static com.mopub.common.util.VersionCode.JELLY_BEAN; import static org.fest.assertions.api.Assertions.assertThat; @RunWith(RobolectricTestRunner.class) public class VersionCodeTest { @Test public void currentApiLevel_shouldReflectActualApiLevel() throws Exception { Robolectric.Reflection.setFinalStaticField(Build.VERSION.class, "SDK_INT", 4); assertThat(VersionCode.currentApiLevel()).isEqualTo(DONUT); Robolectric.Reflection.setFinalStaticField(Build.VERSION.class, "SDK_INT", 8); assertThat(VersionCode.currentApiLevel()).isEqualTo(FROYO); Robolectric.Reflection.setFinalStaticField(Build.VERSION.class, "SDK_INT", 14); assertThat(VersionCode.currentApiLevel()).isEqualTo(ICE_CREAM_SANDWICH); } @Test public void currentApiLevel_whenUnknownApiLevel_shouldReturnCurDevelopment() throws Exception { Robolectric.Reflection.setFinalStaticField(Build.VERSION.class, "SDK_INT", 900); assertThat(VersionCode.currentApiLevel()).isEqualTo(CUR_DEVELOPMENT); } @Test public void isAtMost_shouldCompareVersions() throws Exception { assertThat(ICE_CREAM_SANDWICH.isAtMost(BASE)).isFalse(); assertThat(ICE_CREAM_SANDWICH.isAtMost(JELLY_BEAN)).isTrue(); assertThat(ICE_CREAM_SANDWICH.isAtMost(ICE_CREAM_SANDWICH)).isTrue(); } @Test public void isAtLeast_shouldCompareVersions() throws Exception { assertThat(ICE_CREAM_SANDWICH.isAtLeast(BASE)).isTrue(); assertThat(ICE_CREAM_SANDWICH.isAtLeast(JELLY_BEAN)).isFalse(); assertThat(ICE_CREAM_SANDWICH.isAtLeast(ICE_CREAM_SANDWICH)).isTrue(); } @Test public void isBelow_shouldCompareVersions() throws Exception { assertThat(ICE_CREAM_SANDWICH.isBelow(BASE)).isFalse(); assertThat(ICE_CREAM_SANDWICH.isBelow(JELLY_BEAN)).isTrue(); assertThat(ICE_CREAM_SANDWICH.isBelow(ICE_CREAM_SANDWICH)).isFalse(); } }