diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/CommonOcsResponse.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/CommonOcsResponse.kt index 7a37dc82..321d06f6 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/CommonOcsResponse.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/CommonOcsResponse.kt @@ -36,7 +36,7 @@ data class CommonOcsResponse( @JsonClass(generateAdapter = true) data class OCSResponse( val meta: MetaData, - val data: T + val data: T? ) @JsonClass(generateAdapter = true) diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/GetRemoteShareesOperation.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/GetRemoteShareesOperation.kt index 10154820..a03cac72 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/GetRemoteShareesOperation.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/GetRemoteShareesOperation.kt @@ -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> = 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 { val result = RemoteOperationResult(OK) Timber.d("Successful response: $response") - result.data = parseResponse(response!!) + result.data = parseResponse(response) Timber.d("*** Get Users or groups completed ") return result } diff --git a/owncloudComLibrary/src/test/java/com/owncloud/android/lib/resources/shares/responses/ShareeResponseTest.kt b/owncloudComLibrary/src/test/java/com/owncloud/android/lib/resources/shares/responses/ShareeResponseTest.kt index 374429c3..11c51764 100644 --- a/owncloudComLibrary/src/test/java/com/owncloud/android/lib/resources/shares/responses/ShareeResponseTest.kt +++ b/owncloudComLibrary/src/test/java/com/owncloud/android/lib/resources/shares/responses/ShareeResponseTest.kt @@ -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" } }