diff --git a/data/quotes/src/main/java/com/tangem/data/quotes/store/DefaultQuotesStoreV2.kt b/data/quotes/src/main/java/com/tangem/data/quotes/store/DefaultQuotesStoreV2.kt index 9fbbe97e50..1b4c48a05a 100644 --- a/data/quotes/src/main/java/com/tangem/data/quotes/store/DefaultQuotesStoreV2.kt +++ b/data/quotes/src/main/java/com/tangem/data/quotes/store/DefaultQuotesStoreV2.kt @@ -64,13 +64,23 @@ internal class DefaultQuotesStoreV2( } override suspend fun storeError(currenciesIds: Set) { - updateStatusSourceInRuntime(currenciesIds = currenciesIds, source = StatusSource.ONLY_CACHE) + updateStatusSourceInRuntime( + currenciesIds = currenciesIds, + ifNotFound = Quote::Empty, + source = StatusSource.ONLY_CACHE, + ) } - private suspend fun updateStatusSourceInRuntime(currenciesIds: Set, source: StatusSource) { + private suspend fun updateStatusSourceInRuntime( + currenciesIds: Set, + ifNotFound: (CryptoCurrency.RawID) -> Quote? = { null }, + source: StatusSource, + ) { runtimeStore.update(default = emptySet()) { stored -> - val updatedQuotes = currenciesIds.mapTo(hashSetOf()) { id -> - val quote = stored.firstOrNull { it.rawCurrencyId == id } ?: Quote.Empty(id) + val updatedQuotes = currenciesIds.mapNotNullTo(hashSetOf()) { id -> + val quote = stored.firstOrNull { it.rawCurrencyId == id } + ?: ifNotFound(id) + ?: return@mapNotNullTo null quote.copySealed(source = source) } diff --git a/data/quotes/src/test/java/com/tangem/data/quotes/store/QuotesStoreUpdateMethodsTest.kt b/data/quotes/src/test/java/com/tangem/data/quotes/store/QuotesStoreUpdateMethodsTest.kt index 407b640fd9..b0624da6a3 100644 --- a/data/quotes/src/test/java/com/tangem/data/quotes/store/QuotesStoreUpdateMethodsTest.kt +++ b/data/quotes/src/test/java/com/tangem/data/quotes/store/QuotesStoreUpdateMethodsTest.kt @@ -37,9 +37,7 @@ internal class QuotesStoreUpdateMethodsTest { store.refresh(currenciesIds = currenciesIds) - val runtimeExpected = currenciesIds.map(Quote::Empty).toSet() - - Truth.assertThat(runtimeStore.getSyncOrNull()).isEqualTo(runtimeExpected) + Truth.assertThat(runtimeStore.getSyncOrNull()).isEqualTo(emptySet()) Truth.assertThat(persistenceStore.data.firstOrNull()).isEqualTo(emptyMap>()) }