1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-06-07 07:56:19 +00:00

Do data field not mandatory on ocs response

This commit is contained in:
Abel García de Prada 2022-11-14 09:32:14 +01:00
parent 9adadbddcc
commit f9bc792ded
3 changed files with 21 additions and 21 deletions

View File

@ -36,7 +36,7 @@ data class CommonOcsResponse<T>(
@JsonClass(generateAdapter = true)
data class OCSResponse<T>(
val meta: MetaData,
val data: T
val data: T?
)
@JsonClass(generateAdapter = true)

View File

@ -99,11 +99,11 @@ class GetRemoteShareesOperation
.appendQueryParameter(PARAM_PER_PAGE, perPage.toString())
.build()
private fun parseResponse(response: String): ShareeOcsResponse? {
private fun parseResponse(response: String?): ShareeOcsResponse? {
val moshi = Moshi.Builder().build()
val type: Type = Types.newParameterizedType(CommonOcsResponse::class.java, ShareeOcsResponse::class.java)
val adapter: JsonAdapter<CommonOcsResponse<ShareeOcsResponse>> = moshi.adapter(type)
return adapter.fromJson(response)!!.ocs.data
return response?.let { adapter.fromJson(it)?.ocs?.data }
}
private fun onResultUnsuccessful(
@ -123,7 +123,7 @@ class GetRemoteShareesOperation
private fun onRequestSuccessful(response: String?): RemoteOperationResult<ShareeOcsResponse> {
val result = RemoteOperationResult<ShareeOcsResponse>(OK)
Timber.d("Successful response: $response")
result.data = parseResponse(response!!)
result.data = parseResponse(response)
Timber.d("*** Get Users or groups completed ")
return result
}

View File

@ -63,31 +63,31 @@ class ShareeResponseTest {
@Test
fun `example response - ok - correct sturcture`() {
val response = loadResponses(EXAMPLE_RESPONSE_JSON)!!
assertEquals(2, response.ocs.data.groups.size)
assertEquals(0, response.ocs.data.remotes.size)
assertEquals(2, response.ocs.data.users.size)
assertEquals(0, response.ocs.data.exact?.groups?.size)
assertEquals(0, response.ocs.data.exact?.remotes?.size)
assertEquals(1, response.ocs.data.exact?.users?.size)
assertEquals("user1@user1.com", response.ocs.data.users.get(0).value.additionalInfo)
assertNull(response.ocs.data.users[1].value.additionalInfo)
assertEquals(2, response.ocs.data?.groups?.size)
assertEquals(0, response.ocs.data?.remotes?.size)
assertEquals(2, response.ocs.data?.users?.size)
assertEquals(0, response.ocs.data?.exact?.groups?.size)
assertEquals(0, response.ocs.data?.exact?.remotes?.size)
assertEquals(1, response.ocs.data?.exact?.users?.size)
assertEquals("user1@user1.com", response.ocs.data?.users?.get(0)?.value?.additionalInfo)
assertNull(response.ocs.data?.users?.get(1)?.value?.additionalInfo)
}
@Test
fun `check empty response - ok - parsing ok`() {
val response = loadResponses(EMPTY_RESPONSE_JSON)!!
assertTrue(response.ocs.data.exact?.groups?.isEmpty()!!)
assertTrue(response.ocs.data.exact?.remotes?.isEmpty()!!)
assertTrue(response.ocs.data.exact?.users?.isEmpty()!!)
assertTrue(response.ocs.data.groups.isEmpty())
assertTrue(response.ocs.data.remotes.isEmpty())
assertTrue(response.ocs.data.users.isEmpty())
assertTrue(response.ocs.data?.exact?.groups?.isEmpty()!!)
assertTrue(response.ocs.data?.exact?.remotes?.isEmpty()!!)
assertTrue(response.ocs.data?.exact?.users?.isEmpty()!!)
assertTrue(response.ocs.data?.groups?.isEmpty()!!)
assertTrue(response.ocs.data?.remotes?.isEmpty()!!)
assertTrue(response.ocs.data?.users?.isEmpty()!!)
}
companion object {
val RESOURCES_PATH =
private const val RESOURCES_PATH =
"src/test/responses/com.owncloud.android.lib.resources.sharees.responses"
val EXAMPLE_RESPONSE_JSON = "$RESOURCES_PATH/example_sharee_response.json"
val EMPTY_RESPONSE_JSON = "$RESOURCES_PATH/empty_sharee_response.json"
const val EXAMPLE_RESPONSE_JSON = "$RESOURCES_PATH/example_sharee_response.json"
const val EMPTY_RESPONSE_JSON = "$RESOURCES_PATH/empty_sharee_response.json"
}
}