From 5bed1ee94a53a20c09e8242d31c8e1988abe8818 Mon Sep 17 00:00:00 2001 From: Antonis Lilis Date: Thu, 12 Oct 2023 10:37:32 +0300 Subject: [PATCH] Adds error test cases --- .../rest/wpcom/site/SiteRestClientTest.kt | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/example/src/test/java/org/wordpress/android/fluxc/network/rest/wpcom/site/SiteRestClientTest.kt b/example/src/test/java/org/wordpress/android/fluxc/network/rest/wpcom/site/SiteRestClientTest.kt index 54a61b6040..c2e3c1f51a 100644 --- a/example/src/test/java/org/wordpress/android/fluxc/network/rest/wpcom/site/SiteRestClientTest.kt +++ b/example/src/test/java/org/wordpress/android/fluxc/network/rest/wpcom/site/SiteRestClientTest.kt @@ -549,6 +549,46 @@ class SiteRestClientTest { } } + @Test + fun `given a network error, when all domains are requested, then return api error`() = test { + val error = WPComGsonNetworkError(BaseNetworkError(GenericErrorType.NETWORK_ERROR)) + initAllDomainsResponse(error = error) + + val response = restClient.fetchAllDomains(noWpCom = true) + assert(response is Response.Error) + with((response as Response.Error).error) { + assertThat(type).isEqualTo(GenericErrorType.NETWORK_ERROR) + assertThat(message).isNull() + } + } + + @Test + fun `given timeout, when all domains are requested, then return timeout error`() = test { + val error = WPComGsonNetworkError(BaseNetworkError(GenericErrorType.TIMEOUT)) + initAllDomainsResponse(error = error) + + val response = restClient.fetchAllDomains(noWpCom = true) + assert(response is Response.Error) + with((response as Response.Error).error) { + assertThat(type).isEqualTo(GenericErrorType.TIMEOUT) + assertThat(message).isNull() + } + } + + @Test + fun `given not authenticated, when all domains are requested, then retun auth required error`() = test { + val tokenErrorMessage = "An active access token must be used to query information about the current user." + val error = WPComGsonNetworkError(BaseNetworkError(GenericErrorType.NOT_AUTHENTICATED, tokenErrorMessage)) + initAllDomainsResponse(error = error) + + val response = restClient.fetchAllDomains(noWpCom = true) + assert(response is Response.Error) + with((response as Response.Error).error) { + assertThat(type).isEqualTo(GenericErrorType.NOT_AUTHENTICATED) + assertThat(message).isEqualTo(tokenErrorMessage) + } + } + private suspend fun initSiteResponse( data: SiteWPComRestResponse? = null, error: WPComGsonNetworkError? = null