diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapboxMapOptionsAttrsTest.kt')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapboxMapOptionsAttrsTest.kt | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapboxMapOptionsAttrsTest.kt b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapboxMapOptionsAttrsTest.kt new file mode 100644 index 0000000000..ee8024257f --- /dev/null +++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapboxMapOptionsAttrsTest.kt @@ -0,0 +1,101 @@ +package com.mapbox.mapboxsdk.maps + +import android.content.Context +import android.content.res.Resources +import android.content.res.TypedArray +import com.mapbox.mapboxsdk.R +import io.mockk.MockKAnnotations +import io.mockk.every +import io.mockk.impl.annotations.RelaxedMockK +import io.mockk.verify +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner + +@RunWith(RobolectricTestRunner::class) +class MapboxMapOptionsAttrsTest { + + @RelaxedMockK + private lateinit var options: MapboxMapOptions + + @RelaxedMockK + private lateinit var typedArray: TypedArray + + @RelaxedMockK + private lateinit var context: Context + + @RelaxedMockK + private lateinit var resources: Resources + + @Before + fun setUp() { + MockKAnnotations.init(this) + every { + context.resources + }.returns(resources) + } + + @Test + fun enabledLocalIdeographFontFamily() { + mockEnableLocalIdeograph(enabled = true) + + val options = MapboxMapOptions.createFromAttributes(options, context, typedArray) + + verify(exactly = 1) { + options.localIdeographFontFamily(any()) + } + } + + @Test + fun localIdeographFontFamily() { + mockEnableLocalIdeograph(enabled = true) + + val font = "foo" + mockLocalIdeographString(font) + + val options = MapboxMapOptions.createFromAttributes(options, context, typedArray) + + verify(exactly = 1) { + options.localIdeographFontFamily(font) + } + } + + @Test + fun localIdeographFontFamilies() { + mockEnableLocalIdeograph(enabled = true) + + val fonts = arrayOf("foo", "bar") + mockLocalIdeographStringArray(fonts) + + val options = MapboxMapOptions.createFromAttributes(options, context, typedArray) + + verify(exactly = 1) { + options.localIdeographFontFamily(*fonts) + } + } + + private fun mockEnableLocalIdeograph(enabled: Boolean) { + every { + typedArray.getBoolean(R.styleable.mapbox_MapView_mapbox_localIdeographEnabled, true) + }.returns(enabled) + } + + private fun mockLocalIdeographString(font: String) { + every { + typedArray.getString(R.styleable.mapbox_MapView_mapbox_localIdeographFontFamily) + }.returns(font) + } + + private fun mockLocalIdeographStringArray(fonts: Array<String>) { + val resId = 9000 + + every { + typedArray.getResourceId(R.styleable.mapbox_MapView_mapbox_localIdeographFontFamilies, 0) + }.returns(resId) + + every { + resources.getStringArray(resId) + }.returns(fonts) + } +}
\ No newline at end of file |