Improve API of interface WellknownRetriever to be able to distinguish between 404 and other errors.

This commit is contained in:
Benoit Marty 2025-10-22 14:13:36 +02:00
parent cbbbef39d8
commit 9ad9efe547
14 changed files with 196 additions and 96 deletions

View file

@ -10,17 +10,18 @@ package io.element.android.features.wellknown.test
import io.element.android.libraries.wellknown.api.ElementWellKnown
import io.element.android.libraries.wellknown.api.SessionWellknownRetriever
import io.element.android.libraries.wellknown.api.WellKnown
import io.element.android.libraries.wellknown.api.WellknownRetrieverResult
import io.element.android.tests.testutils.simulateLongTask
class FakeSessionWellknownRetriever(
private val getWellKnownResult: () -> WellKnown? = { null },
private val getElementWellKnownResult: () -> ElementWellKnown? = { null },
private val getWellKnownResult: () -> WellknownRetrieverResult<WellKnown> = { WellknownRetrieverResult.NotFound },
private val getElementWellKnownResult: () -> WellknownRetrieverResult<ElementWellKnown> = { WellknownRetrieverResult.NotFound },
) : SessionWellknownRetriever {
override suspend fun getWellKnown(): WellKnown? = simulateLongTask {
override suspend fun getWellKnown(): WellknownRetrieverResult<WellKnown> = simulateLongTask {
getWellKnownResult()
}
override suspend fun getElementWellKnown(): ElementWellKnown? = simulateLongTask {
override suspend fun getElementWellKnown(): WellknownRetrieverResult<ElementWellKnown> = simulateLongTask {
getElementWellKnownResult()
}
}

View file

@ -10,17 +10,18 @@ package io.element.android.features.wellknown.test
import io.element.android.libraries.wellknown.api.ElementWellKnown
import io.element.android.libraries.wellknown.api.WellKnown
import io.element.android.libraries.wellknown.api.WellknownRetriever
import io.element.android.libraries.wellknown.api.WellknownRetrieverResult
import io.element.android.tests.testutils.simulateLongTask
class FakeWellknownRetriever(
private val getWellKnownResult: (String) -> WellKnown? = { null },
private val getElementWellKnownResult: (String) -> ElementWellKnown? = { null },
private val getWellKnownResult: (String) -> WellknownRetrieverResult<WellKnown> = { WellknownRetrieverResult.NotFound },
private val getElementWellKnownResult: (String) -> WellknownRetrieverResult<ElementWellKnown> = { WellknownRetrieverResult.NotFound },
) : WellknownRetriever {
override suspend fun getWellKnown(baseUrl: String): WellKnown? = simulateLongTask {
override suspend fun getWellKnown(baseUrl: String): WellknownRetrieverResult<WellKnown> = simulateLongTask {
getWellKnownResult(baseUrl)
}
override suspend fun getElementWellKnown(baseUrl: String): ElementWellKnown? = simulateLongTask {
override suspend fun getElementWellKnown(baseUrl: String): WellknownRetrieverResult<ElementWellKnown> = simulateLongTask {
getElementWellKnownResult(baseUrl)
}
}