mirror of https://github.com/nextcloud/android
81 lines
2.6 KiB
Kotlin
81 lines
2.6 KiB
Kotlin
/*
|
|
* Nextcloud - Android Client
|
|
*
|
|
* SPDX-FileCopyrightText: 2021 Álvaro Brey <alvaro@alvarobrey.com>
|
|
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
*/
|
|
package com.owncloud.android.datamodel
|
|
|
|
import android.content.ContentResolver
|
|
import android.net.Uri
|
|
import android.os.Build
|
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
|
import androidx.test.filters.SdkSuppress
|
|
import org.junit.Before
|
|
import org.junit.Test
|
|
import org.junit.runner.RunWith
|
|
import org.mockito.Mock
|
|
import org.mockito.MockitoAnnotations
|
|
import org.mockito.kotlin.argThat
|
|
import org.mockito.kotlin.eq
|
|
import org.mockito.kotlin.verify
|
|
|
|
@RunWith(AndroidJUnit4::class)
|
|
class ContentResolverHelperIT {
|
|
|
|
companion object {
|
|
private val URI = Uri.parse("http://foo.bar")
|
|
private val PROJECTION = arrayOf("Foo")
|
|
private const val SELECTION = "selection"
|
|
private const val SORT_COLUMN = "sortColumn"
|
|
private const val SORT_DIRECTION = ContentResolverHelper.SORT_DIRECTION_ASCENDING
|
|
private const val SORT_DIRECTION_INT = ContentResolver.QUERY_SORT_DIRECTION_ASCENDING
|
|
private const val LIMIT = 10
|
|
}
|
|
|
|
@Mock
|
|
lateinit var resolver: ContentResolver
|
|
|
|
@Before
|
|
fun setUp() {
|
|
MockitoAnnotations.initMocks(this)
|
|
}
|
|
|
|
@Test
|
|
@SdkSuppress(minSdkVersion = Build.VERSION_CODES.O)
|
|
fun contentResolver_onAndroid26_usesNewAPI() {
|
|
ContentResolverHelper
|
|
.queryResolver(resolver, URI, PROJECTION, SELECTION, null, SORT_COLUMN, SORT_DIRECTION, LIMIT)
|
|
|
|
verify(resolver).query(
|
|
eq(URI),
|
|
eq(PROJECTION),
|
|
argThat { bundle ->
|
|
bundle.getString(ContentResolver.QUERY_ARG_SQL_SELECTION) == SELECTION &&
|
|
bundle.getInt(ContentResolver.QUERY_ARG_LIMIT) == LIMIT &&
|
|
bundle.getStringArray(ContentResolver.QUERY_ARG_SORT_COLUMNS)!!
|
|
.contentEquals(arrayOf(SORT_COLUMN)) &&
|
|
bundle.getInt(ContentResolver.QUERY_ARG_SORT_DIRECTION) == SORT_DIRECTION_INT
|
|
},
|
|
null
|
|
)
|
|
}
|
|
|
|
@Test
|
|
@SdkSuppress(maxSdkVersion = Build.VERSION_CODES.N_MR1)
|
|
fun contentResolver_onAndroidBelow26_usesOldAPI() {
|
|
ContentResolverHelper
|
|
.queryResolver(resolver, URI, PROJECTION, SELECTION, null, SORT_COLUMN, SORT_DIRECTION, LIMIT)
|
|
|
|
verify(resolver).query(
|
|
eq(URI),
|
|
eq(PROJECTION),
|
|
eq(SELECTION),
|
|
eq(null),
|
|
eq("$SORT_COLUMN $SORT_DIRECTION LIMIT $LIMIT"),
|
|
eq(null)
|
|
)
|
|
}
|
|
}
|